SlideShare uma empresa Scribd logo
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
Objetivos




      Construir uma aplica¸˜o gr´fica com elementos b´sicos do
                          ca    a                   a
      Swing;
Objetivos




      Construir uma aplica¸˜o gr´fica com elementos b´sicos do
                          ca    a                   a
      Swing;
      Programar o tratamento de eventos.
Baseado no Abstract Window Toolkit (AWT). Introduzido no
Java 1.0;
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
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);
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
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
                                              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       }
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   ...
Passo 2: Definindo o Gerenciador de Layout



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



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



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



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



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



   Tipos de Layout:
       Border ;
       GridBag ;
       Box;
       Flow ;
       Spring ;
       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
                                          a




                   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
                                            a
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/

Mais conteúdo relacionado

Mais procurados (20)

PPT
Tratamento de exceções java
Antonio Oliveira
 
PDF
Introdução a programação II
Clerton Leal
 
PDF
RxJava - Programação assíncrona para Android.
Clerton Leal
 
PPTX
Java hidden features
Josenaldo de Oliveira Matos Filho
 
PDF
Dagger 2 Injeção de dependências no mundo Android
Clerton Leal
 
ODP
Estratégias de Refatoração: além do be-a-bá
Danilo Sato
 
PDF
Por que sua próxima aplicação web deve ser em Clojure?
Eduardo Aquiles Affonso Radanovitsck
 
PDF
Aula 01 - Começando a programar em PHP
Evandro Júnior
 
PPT
Introdução a testes unitários automatizados com JUnit e NUnit
elliando dias
 
PDF
Funcionamento interno do node.js e boas práticas
Kirmayr tomaz
 
PDF
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
Rogério Moraes de Carvalho
 
DOCX
Basico dovba excel_tutorial1
Carlos Adriano Rosa
 
ODP
Programação Defensiva
Glaucio Scheibel
 
PDF
Clean code part 2
clauvane1708
 
PDF
Event-based Asynchronous Pattern (EAP)
Rogério Moraes de Carvalho
 
PDF
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Weverton Timoteo
 
PPT
Android Logcat
Reuel Lopes
 
PDF
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
Weverton Timoteo
 
PPTX
Code Smells
Rodrigo Branas
 
ODP
Código Limpo
nsitechtalks
 
Tratamento de exceções java
Antonio Oliveira
 
Introdução a programação II
Clerton Leal
 
RxJava - Programação assíncrona para Android.
Clerton Leal
 
Java hidden features
Josenaldo de Oliveira Matos Filho
 
Dagger 2 Injeção de dependências no mundo Android
Clerton Leal
 
Estratégias de Refatoração: além do be-a-bá
Danilo Sato
 
Por que sua próxima aplicação web deve ser em Clojure?
Eduardo Aquiles Affonso Radanovitsck
 
Aula 01 - Começando a programar em PHP
Evandro Júnior
 
Introdução a testes unitários automatizados com JUnit e NUnit
elliando dias
 
Funcionamento interno do node.js e boas práticas
Kirmayr tomaz
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
Rogério Moraes de Carvalho
 
Basico dovba excel_tutorial1
Carlos Adriano Rosa
 
Programação Defensiva
Glaucio Scheibel
 
Clean code part 2
clauvane1708
 
Event-based Asynchronous Pattern (EAP)
Rogério Moraes de Carvalho
 
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Weverton Timoteo
 
Android Logcat
Reuel Lopes
 
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
Weverton Timoteo
 
Code Smells
Rodrigo Branas
 
Código Limpo
nsitechtalks
 

Destaque (20)

PPTX
Introdução ao JDBC - BarreirasJUG
Pedro Henrique Pereira de Andrade
 
PPTX
Introdução à Orientação a Objeto em Java
Bruno Machado
 
PPT
Desenvolvimento RIA com Java
armeniocardoso
 
PDF
Java 04
samuelthiago
 
PPT
Desenvolvimento de Aplicações Corporativas com Java
armeniocardoso
 
PPT
Netbeans
armeniocardoso
 
PPT
Java20141218 19
Diogo Rafael da Silva
 
PPSX
Automação comercial
Renato Pereira
 
PDF
Tomorrow Java
José Maria Silveira Neto
 
PPTX
Transformações de Views
Jonas Alves
 
PPTX
Interface grafica em_java_parte_v
samuelthiago
 
ODP
Java 16 Jdbc
Regis Magalhães
 
ODP
JDBC
Ramon Lopes
 
PPT
Desenvolvendo com Java Open Source
armeniocardoso
 
PPS
Segurança J2EE
Rodrigo Cândido da Silva
 
PDF
Java JDBC: Aplicação Java que acessa um SGDB
Ricardo Terra
 
PPTX
Java gui
Deywson Johnny
 
PDF
Conexão Java 2006: Introdução ao Ajax
Helder da Rocha
 
PDF
Apresentação-Resumo sobre o Java Swing.
Gabriel Jesus
 
ODP
Java 10 Classes Abstratas Interfaces
Regis Magalhães
 
Introdução ao JDBC - BarreirasJUG
Pedro Henrique Pereira de Andrade
 
Introdução à Orientação a Objeto em Java
Bruno Machado
 
Desenvolvimento RIA com Java
armeniocardoso
 
Java 04
samuelthiago
 
Desenvolvimento de Aplicações Corporativas com Java
armeniocardoso
 
Netbeans
armeniocardoso
 
Java20141218 19
Diogo Rafael da Silva
 
Automação comercial
Renato Pereira
 
Transformações de Views
Jonas Alves
 
Interface grafica em_java_parte_v
samuelthiago
 
Java 16 Jdbc
Regis Magalhães
 
Desenvolvendo com Java Open Source
armeniocardoso
 
Segurança J2EE
Rodrigo Cândido da Silva
 
Java JDBC: Aplicação Java que acessa um SGDB
Ricardo Terra
 
Java gui
Deywson Johnny
 
Conexão Java 2006: Introdução ao Ajax
Helder da Rocha
 
Apresentação-Resumo sobre o Java Swing.
Gabriel Jesus
 
Java 10 Classes Abstratas Interfaces
Regis Magalhães
 
Anúncio

Semelhante a Tutorial java swing (20)

PDF
Java swingcomponentes
Delliany Miranda
 
PPT
Tutorial1
Braulio Neto
 
PDF
Interface grafica
Ialis Cavalcante
 
PDF
Aplicações java com netbeans
Thalles Anderson
 
PDF
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
anapatricio
 
PDF
Apostila: Netbeans
Verônica Veiga
 
PDF
Construindo aplicações com netbeans
Sliedesharessbarbosa
 
PDF
Capitulo 14 -_componentes_gui_parte_1
Pedro Neto
 
PDF
Apostila:Curso de java II
Verônica Veiga
 
PDF
Introdução ao Java Swing (Interface)
Sérgio Souza Costa
 
PDF
GUI Aplicações Gráficas
Mario Jorge Pereira
 
PPTX
Java: Introducao ao Swing
Arthur Emanuel
 
PDF
Java interface gráfica swing
Armando Daniel
 
PDF
Java swing
Nécio de Lima Veras
 
PDF
Apostila de programação visual netbeans
Paulo Carvalho
 
PDF
Apostil ade programação visual netbeans
Paulo Carvalho
 
DOCX
Revisão de Java paraAV1.docx
VeronicaAparecida5
 
PDF
Como construir aplicações gráficas e applets
Denis L Presciliano
 
PDF
Como construir aplicações gráficas e applets
Denis L Presciliano
 
Java swingcomponentes
Delliany Miranda
 
Tutorial1
Braulio Neto
 
Interface grafica
Ialis Cavalcante
 
Aplicações java com netbeans
Thalles Anderson
 
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
anapatricio
 
Apostila: Netbeans
Verônica Veiga
 
Construindo aplicações com netbeans
Sliedesharessbarbosa
 
Capitulo 14 -_componentes_gui_parte_1
Pedro Neto
 
Apostila:Curso de java II
Verônica Veiga
 
Introdução ao Java Swing (Interface)
Sérgio Souza Costa
 
GUI Aplicações Gráficas
Mario Jorge Pereira
 
Java: Introducao ao Swing
Arthur Emanuel
 
Java interface gráfica swing
Armando Daniel
 
Apostila de programação visual netbeans
Paulo Carvalho
 
Apostil ade programação visual netbeans
Paulo Carvalho
 
Revisão de Java paraAV1.docx
VeronicaAparecida5
 
Como construir aplicações gráficas e applets
Denis L Presciliano
 
Como construir aplicações gráficas e applets
Denis L Presciliano
 
Anúncio

Tutorial java swing

  • 1. Um Tutorial sobre Programa¸˜o Gr´fica em Java ca a Java Swing Marcos Yuzuru de Oliveira Camada [email protected] 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.
  • 4. Baseado no Abstract Window Toolkit (AWT). Introduzido no Java 1.0;
  • 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
  • 8. Modelo das Classes Figura: Hierarquia da Classe JFrame
  • 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 ...
  • 12. Passo 2: Definindo o Gerenciador de Layout Tipos de Layout: Border ;
  • 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 }
  • 21. Uma Simples Janela Figura: Cadastro de Propriet´rio a
  • 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/