1. Um Tutorial sobre Programa¸˜o Gr´fica em Java
ca a
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)
o ca ca
31 de Mar¸o de 2008
c
2. Objetivos
Construir uma aplica¸˜o gr´fica com elementos b´sicos do
ca a a
Swing;
3. Objetivos
Construir uma aplica¸˜o gr´fica com elementos b´sicos do
ca a a
Swing;
Programar o tratamento de eventos.
5. Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
Capaz de executar na maioria das arquiteturas operacionais
que apresente a m´quina virtual java e interface gr´fica;
a a
6. Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
Capaz de executar na maioria das arquiteturas operacionais
que apresente a m´quina virtual java e interface gr´fica;
a a
Elaborado pela Sun junto com a Netscape (IFC - Internet
Foundation Classes);
7. Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
Capaz de executar na maioria das arquiteturas operacionais
que apresente a m´quina virtual java e interface gr´fica;
a a
Elaborado pela Sun junto com a Netscape (IFC - Internet
Foundation Classes);
Faz parte do Java Foundation Classes (JFC). O JFC, al´m do
e
Swing, cont´m API de acessibilidade, API 2D, etc.
e
9. 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 {}
10. Passo 1: Construir uma Janela
Algoritmo 2: Definindo atributos e o m´todo construtor
e
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 }
11. Passo 1: Construir uma Janela
Algoritmo 3: Definindo campos do formul´rio
a
1 ...
2 pr iv at e Container area = t h i s . getContentPane () ;
3
4 // Campos do F o r m u l A ¡ 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 ...
13. Passo 2: Definindo o Gerenciador de Layout
Tipos de Layout:
Border ;
GridBag ;
14. Passo 2: Definindo o Gerenciador de Layout
Tipos de Layout:
Border ;
GridBag ;
Box;
15. Passo 2: Definindo o Gerenciador de Layout
Tipos de Layout:
Border ;
GridBag ;
Box;
Flow ;
16. Passo 2: Definindo o Gerenciador de Layout
Tipos de Layout:
Border ;
GridBag ;
Box;
Flow ;
Spring ;
17. Passo 2: Definindo o Gerenciador de Layout
Tipos de Layout:
Border ;
GridBag ;
Box;
Flow ;
Spring ;
Grid.
18. 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 }
19. Passo 3: Tratar os eventos gerado pelo usu´rio
a
Algoritmo 5: Tratamento de eventos.
1 public void actionPerformed ( ActionEvent event ) {
2 i f ( event . getSource () . equals ( jbCadastrar ) ){
3 ...
4 }
5 ...
6 }
20. 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 }
22. 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/