Você está na página 1de 22

Um Tutorial sobre Programação Gráfica em Java

Java Swing

Marcos Yuzuru de Oliveira Camada


mcamada@das.ufsc.br

Universidade Federal de Santa Catarina (UFSC)


Programa de Pós-Graduação em Engenharia de Automação e Sistemas (PGEAS)

31 de Março de 2008
Objetivos

I Construir uma aplicação gráfica com elementos básicos do


Swing;
Objetivos

I Construir uma aplicação gráfica com elementos básicos do


Swing;
I Programar o tratamento de eventos.
I Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
I Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
I Capaz de executar na maioria das arquiteturas operacionais
que apresente a máquina virtual java e interface gráfica;
I Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
I Capaz de executar na maioria das arquiteturas operacionais
que apresente a máquina virtual java e interface gráfica;
I Elaborado pela Sun junto com a Netscape (IFC - Internet
Foundation Classes);
I Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
I Capaz de executar na maioria das arquiteturas operacionais
que apresente a máquina virtual java e interface gráfica;
I Elaborado pela Sun junto com a Netscape (IFC - Internet
Foundation Classes);
I Faz parte do Java Foundation Classes (JFC). O JFC, além do
Swing, contém API de acessibilidade, API 2D, etc.
Modelo das Classes

Figura: Hierarquia da Classe JFrame


Passo 1: Construir uma Janela

Algoritmo 1: Estendendo classe JFrame e implementando a escuta


de eventos
1 package j a n e l a ;
2 import j a v a x . s w i n g . JFrame ;
3
4 p u b l i c c l a s s S i m p l e s J a n e l a e x t e n d s JFrame implements
A c t i o n L i s t e n e r {}
Passo 1: Construir uma Janela
Algoritmo 2: Definindo atributos e o método construtor
1 public class S i m p l e s J a n e l a e x t e n d s JFrame {
2 private int largura ;
3 private int altura ;
4 private String titulo ;
5
6 public SimplesJanela ( int largura , int altura ,
String titulo ) {
7 this . largura = largura ;
8 this . altura = altura ;
9 this . setSize ( largura , altura ) ;
10 this . titulo = titulo ;
11 t h i s . setName ( t i t u l o ) ;
12 this . setTitle ( titulo ) ;
13 // Tratamento do e v e n t o de f e c h a r j a n e l a
14 t h i s . s e t D e f a u l t C l o s e O p e r a t i o n ( JFrame .
EXIT ON CLOSE ) ;
15 // J a n e l a pode s e r r e d i m e n s i o n a d a
16 t h i s . s e t R e s i z a b l e ( true ) ;
17 }
Passo 1: Construir uma Janela

Algoritmo 3: Definindo campos do formulário


1 ...
2 pr iv at e Container area = t h i s . getContentPane () ;
3
4 // Campos do F o r m u l à ¡ r i o
5 p r i v a t e J T e x t F i e l d nome = new J T e x t F i e l d ( ) ;
6 ...
7 p r i v a t e J B u t t o n j b C a n c e l a r = new J B u t t o n ( " Cancelar " ) ;
8 ...
Passo 2: Definindo o Gerenciador de Layout

Tipos de Layout:
I Border ;
Passo 2: Definindo o Gerenciador de Layout

Tipos de Layout:
I Border ;
I GridBag ;
Passo 2: Definindo o Gerenciador de Layout

Tipos de Layout:
I Border ;
I GridBag ;
I Box;
Passo 2: Definindo o Gerenciador de Layout

Tipos de Layout:
I Border ;
I GridBag ;
I Box;
I Flow ;
Passo 2: Definindo o Gerenciador de Layout

Tipos de Layout:
I Border ;
I GridBag ;
I Box;
I Flow ;
I Spring ;
Passo 2: Definindo o Gerenciador de Layout

Tipos de Layout:
I Border ;
I GridBag ;
I Box;
I Flow ;
I Spring ;
I Grid.
Passo 2: Definindo o Gerenciador de Layout

Algoritmo 4: Estabelece layout da janela.


1 private void carregaElementosFormulario () {
2 // D e f i n i n d o t i p o de l a y o u t
3 t h i s . a r e a . s e t L a y o u t ( new G r i d L a y o u t ( 4 , 2 ) ) ;
4
5 this . a r e a . add ( new J L a b e l ( " Nome :" ) ) ;
6 this . a r e a . add ( nome ) ;
7 ...
8 this . jbCancelar . addActionListener ( this ) ;
9 this . a r e a . add ( j b C a n c e l a r ) ;
10 }
Passo 3: Tratar os eventos gerado pelo usuário

Algoritmo 5: Tratamento de eventos.


1 public void actionPerformed ( ActionEvent event ) {
2 i f ( event . getSource () . equals ( jbCadastrar ) ){
3 ...
4 }
5 ...
6 }
Passo 4: Instanciar a Janela

Algoritmo 6: Instanciando a janela


1 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
2 j a v a x . s w i n g . S w i n g U t i l i t i e s . i n v o k e L a t e r ( new R u n n a b l e
() {
3
4 p u b l i c void run ( ) {
5 S i m p l e s J a n e l a j a n e l a = new S i m p l e s J a n e l a
( 4 0 0 , 3 0 0 , " Janela de Teste " ) ;
6 janela . carregaJanela () ;
7 }
8 }) ;
9 }
Uma Simples Janela

Figura: Cadastro de Proprietário


Core Java 2 Volume 1 Fundamentos
Cay S. Horstmann and Gary Cornell
Prentice Hall PTR
ISBN 0-13-047177-1
agosto, 2002

Site: http://java.sun.com/developer/onlineTraining/GUI/