SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Curso de Java
by Antonio Rodrigues Carvalho Neto
Interface Gráfica
Java Graphical User Interface
Para criar janelas gráficas no Java é preciso é preciso
utilizar uma das bibliotecas gráficas disponíveis (AWT,
Swing ou SWT).
AWT foi uma primeira biblioteca gráfica criada para Java
Swing é uma biblioteca gráfica mais utilizada para Java, pois tem
todas as características da AWT é mais atualizada.
SWT foi criada inicialmente pela IBM e hoje é mantida pela
Eclipse foundation. O SWT é mais rápido do Swing.
Neste curso utilizaremos uma biblioteca gráfica Swing.
Java Graphical User Interface
Antes de começarmos será preciso
entender alguns conceitos da biblioteca
gráfica Swing.
Assim como as outras aplicações gráficas,
os objetos são colocados em janelas e não
diretamente sobre o Desktop.
E mesmo dentro das janelas eles são
organizados em Containers ou Paineis.
Java Graphical User Interface
Objeto gráfico ou Componente gráfico são os
elementos que permitem ao usuário interagir
com uma aplicação. Assim como botões, caixas
de textos, rótulos, etc..
Container é uma área que permite uma
“colagem” dos objetos gráficos.
Elementos Gráficos
Os objetos gráficos no Java são criados como objetos
normais apartir das classes definidas na biblioteca
gráfica (neste caso Swing).
Para criar um elemento gráfico basta instanciar um
objeto do tipo escolhido.
Exemplo : Para criar uma caixa de texto é preciso
instanciar um objeto da classe JTextField que é uma
classe da biblioteca Swing que representa uma caixa de
texto.
JTextField caixa = new JTextField();
Nota : Alguns tipos objetos gráficos podem receber
parametros quando estiverem sendo instanciados.
Elementos Gráficos
Para criar uma janela simples contendo uma frase
“Hello World” é preciso seguir algumas etapas:
Criar uma janela gráfica
Instancie um objeto do tipo JFrame para criar uma nova janela.
Sintaxe: JFrame <objeto> = new JFrame(<titulo>);
Exemplo:
JFrame janela = new JFrame(“My First Graphic Window”);
Nota : Cada instancia de JFrame corresponde uma uma nova
janela.
Elementos Gráficos
Crie um painel que servirá como conteiner para os
objetos gráficos.
Instancie um objeto do tipo JPanel para criar um novo painel.
Sintaxe: JPanel <objeto> = new JPanel();
Exemplo: JPanel painel = new JPanel();
Nota : Cada instancia de JPanel corresponde uma um novo
painel.
Criar o objeto gráfico desejado
Neste caso instancie um objeto do tipo JLabel para criar um
novo rótulo.
Sintaxe: JLabel <objeto> = new JLabel(<rótulo>);
Exemplo: JLabel lblHello = new JLabel(“Hello World”);
Nota : Cada instancia de JLabel corresponde uma um novo
rótulo.
Conectando os elementos
A janela o conteiner e os demais objetos
gráficos criados ficam dispersos na memória.
mainWindow
myPanel
lblHello
É preciso conectá-los uns aos outros para
que apareçam dentro da janela.
Conectando os elementos
Primeiro conecte os objetos gráficos no conteiner.
Sintaxe: <objeto conteiner>.add(<objeto gráfico>);
Exemplo: painel.add(lblHello);
painel
lblHello
janela
Conectando os elementos
Conecte agora o conteiner na janela gráfica
Sintaxe: <objeto JFrame>.setContentPane(<objeto
conteiner>);
Exemplo: janela.setContentPane(painel);
Nota : uma janela gráfica pode conter apenas um
objeto do tipo conteiner.
painel
lblHello
janela
Mostrando os elementos
Agora que os elementos estão conectados resta apenas
determinar o tamanho da janela e torna-la visível.
Para isto utilize as seguintes funções:
Determinar o tamanho
Sintaxe: <objeto janela>.setSize(<comprimento>, <altura>);
Exemplo: janela.setSize(400, 200);
Nota: O tamanho da janela é medido em pixels
Tornar uma janela visível
Sintaxe: <objeto janela>.setVisible(<visivel>);
Exemplo: janela.setVisible(true);
Nota: Se deixar como true uma janela ficará visível e se deixar
como false ela se tornará invisível.
Exercício
Desenvolva uma aplicação conforme o
layout ao lado, usando os comandos
abaixo:
JFrame <objeto janela> = new JFrame(<titulo>);
JPanel <objeto painel> = new JPanel();
JLabel <objeto label> = new JLabel(<texto>);
JTextField <objeto textfield> = new JTextField();
JButton <objeto button> = new JButton(<texto>);
<objeto janela>.setContentPane( <objeto painel> );
<objeto painel>.add( <componente gráfico> );
<objeto janela>.setSize( <comprimento>, <largura>);
<objeto janela>.setVisible( <boolean true ou false> );
Código Completo
O código completo para este exemplo
ficaria assim:
public class HelloWorld {
public static void main(String[] args) {
// Cria os elementos gráficos (janela, painel e objeto)
JFrame janela = new JFrame(“My first Graphic Application”);
JPanel painel = JPanel();
JLabel lblHello = new JLabel(“Hello World”);
// Conecta os elementos
painel.add(lblHello);
janela.setContentPane(painel);
// Mostra uma janela gráfica
janela.setSize(400, 200);
janela.setVisible(true);
}
}
Herdando uma Janela
Para manter uma melhor coesão a Janela
pode ser feita em uma classe separada,
tendo seus componentes como sendo
variáveis de instância. A instanciação e
conexão dos componentes gráficos será
feita no construtor da Janela.
Herdando uma Janela (cont.)
Crie uma subclasse da classe JFrame:
public classe MinhaJanela extends JFrame {
}
Crie o painel e os elementos gráficos como
sendo variáveis de instância dentro da janela.
public classe MinhaJanela extends JFrame {
JPanel painel;
JLabel lblHello;
}
Herdando uma Janela (cont.)
Sobreescreva o constutor para instânciar e
conectar os elementos gráficos uns aos outros.
public classe MinhaJanela extends JFrame {
JPanel painel;
JLabel lblHello;
public MinhaJanela() {
// Instância os componentes gráficos
painel = new JPanel();
lblHello = new JLabel(“Eu gosto de Java...”);
// Conecta, uns aos outros
painel.add(lblHello);
this.setContentPane(painel);
// Mostra a janela na tela
this.setSize(300, 300);
this.setVisible(true);
}
}
Herdando uma Janela (cont.)
Para mostrar a janela na tela basta criar
um objeto do tipo MinhaJanela
public classe Teste {
public static void main(String[] args) {
MinhaJanela jan = new MinhaJanela();
}
}
Outros objetos gráficos
Existem outros objetos gráficos que
podem ser utilizados para uma criação da
interface gráfica.
Outros objetos gráficos
JTextField
JLabel
JButton
JTextArea
String getText() retorna uma String com o texto digitado dentro
da area.
void setText(String t) define um texto dentro da area
boolean isEditable() retorna um boolean indicando se este
objeto é editável
void setEditable(boolean b) define se o objeto será editável ou
não.
Cria uma área de texto permitindo a visualização ou edição
de um grande texto.
Sintaxe :
JTextArea <objeto> = new JTextArea( <linhas>, <colunas>);
Exemplo :
JTextArea name = new JTextArea(5, 20);
String getText() retorna um String com o conteúdo do botão.
void setText(String t) define um novo texto para ser o conteúdo
do botão.
void setActionCommand(String actionCommand) define o
nome da ação que botão irá fazer. Normalmente a ação tem o
mesmo valor contido no nome do botão.
String getActionCommand() retorna o nome da ação do botão.
Implementa um botão o qual mostra um texto. Sua utilização
é para acionar uma determinada ação quando for pressionado.
Sintaxe :
JButton <objeto> = new JButton (String <conteúdo>);
Exemplo :
JButton name = new JButton(“Ok”);
String getText() retorna um String com o conteúdo do rótulo.
void setText(String t) coloca um novo texto no rótulo.
Cria um espaço onde pode ser exibido um texto curto uma
imagem ou ambos.
Sintaxe :
JLabel <objeto> = new JLabel(String <conteúdo>);
Exemplo :
JLabel name = new JLabel(“hello world”);
String getText() retorna um String com o texto digitado dentro
da caixa.
void setText(String t) define um texto dentro da caixa.
boolean isEditable() retorna um boolean indicando se este
objeto é editável
void setEditable(boolean b) define se o objeto será editável ou
não.
Cria uma caixa de texto que pode ser utilizada pelo usuário
para digitar informações.
Sintaxe :
JTextField <objeto> = new JTextField(<número colunas>);
Exemplo :
JTextField nome = new JTextField(20);
Métodos ImportantesDescriçãoJava Swing Objeto
Gráfico
Exercício (para casa)
Desenvolva uma aplicação conforme o
layout abaixo:
Referências
Java como programar 6ª edição
Capítulo 11 e Capítulo 22
Use a cabeça Java
Capitulo 12
pags. 251 a 253

Contenu connexe

Tendances

Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depthVinay Kumar
 
Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)Sérgio Souza Costa
 
1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de Programación1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de ProgramaciónLaura Folgado Galache
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Examplekamal kotecha
 
jpa-hibernate-presentation
jpa-hibernate-presentationjpa-hibernate-presentation
jpa-hibernate-presentationJohn Slick
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
 
Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3Pedro Neto
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepGuo Albert
 

Tendances (20)

Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
 
Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)
 
1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de Programación1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de Programación
 
Java Spring
Java SpringJava Spring
Java Spring
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
 
jpa-hibernate-presentation
jpa-hibernate-presentationjpa-hibernate-presentation
jpa-hibernate-presentation
 
Spring framework core
Spring framework coreSpring framework core
Spring framework core
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
JPA For Beginner's
JPA For Beginner'sJPA For Beginner's
JPA For Beginner's
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Semántica en HTML5
Semántica en HTML5Semántica en HTML5
Semántica en HTML5
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
Introdução a HTML5
Introdução a HTML5Introdução a HTML5
Introdução a HTML5
 

En vedette (20)

Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layouts
 
Java gui
Java guiJava gui
Java gui
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Java10
Java10Java10
Java10
 
Java - Introdução a Coleções e Generics
Java - Introdução a Coleções e GenericsJava - Introdução a Coleções e Generics
Java - Introdução a Coleções e Generics
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 
4 teorias motivacionais Ramónjr
4 teorias motivacionais Ramónjr4 teorias motivacionais Ramónjr
4 teorias motivacionais Ramónjr
 
Lista2
Lista2Lista2
Lista2
 
Declarações e Controle de Acesso
Declarações e Controle de AcessoDeclarações e Controle de Acesso
Declarações e Controle de Acesso
 
Programacao em java
Programacao em javaProgramacao em java
Programacao em java
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
 
Java Web Start
Java Web StartJava Web Start
Java Web Start
 
Mac os-x
Mac os-xMac os-x
Mac os-x
 
Tutorial javac
Tutorial javacTutorial javac
Tutorial javac
 
Java e net beans
Java e net beans Java e net beans
Java e net beans
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem java
 
Clases de java swing
Clases de java swingClases de java swing
Clases de java swing
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
 
Java swing
Java swingJava swing
Java swing
 
Trabalho de química sobre a quitina
Trabalho de química sobre a quitinaTrabalho de química sobre a quitina
Trabalho de química sobre a quitina
 

Similaire à Java Swing GUI Curso

Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II Verônica Veiga
 
Interface Gráfica.ppt
Interface Gráfica.pptInterface Gráfica.ppt
Interface Gráfica.pptJoberthSilva
 
Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tksamuelthiago
 
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
Aula 1 - Introdução à Interface gráfica do JAVA.pdfAula 1 - Introdução à Interface gráfica do JAVA.pdf
Aula 1 - Introdução à Interface gráfica do JAVA.pdfanapatricio
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfnosbisantos
 
Java - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionalJava - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionala41172
 
Apostila de programação visual netbeans
Apostila de programação visual   netbeansApostila de programação visual   netbeans
Apostila de programação visual netbeansPaulo Carvalho
 
Apostil ade programação visual netbeans
Apostil ade programação visual   netbeansApostil ade programação visual   netbeans
Apostil ade programação visual netbeansPaulo Carvalho
 
introdução ao enterprise architect
introdução ao enterprise architectintrodução ao enterprise architect
introdução ao enterprise architectRanieri de Souza
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeansThalles Anderson
 
Introdução ao jquery
Introdução ao jqueryIntrodução ao jquery
Introdução ao jqueryYuri Costa
 

Similaire à Java Swing GUI Curso (20)

CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
 
Interface grafica
Interface graficaInterface grafica
Interface grafica
 
Interface Gráfica.ppt
Interface Gráfica.pptInterface Gráfica.ppt
Interface Gráfica.ppt
 
Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tk
 
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
Aula 1 - Introdução à Interface gráfica do JAVA.pdfAula 1 - Introdução à Interface gráfica do JAVA.pdf
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
 
Java - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionalJava - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissional
 
Tutorial1
Tutorial1Tutorial1
Tutorial1
 
Hiearquia Window
Hiearquia WindowHiearquia Window
Hiearquia Window
 
Apostila de programação visual netbeans
Apostila de programação visual   netbeansApostila de programação visual   netbeans
Apostila de programação visual netbeans
 
Apostil ade programação visual netbeans
Apostil ade programação visual   netbeansApostil ade programação visual   netbeans
Apostil ade programação visual netbeans
 
Java swingcomponentes
Java swingcomponentesJava swingcomponentes
Java swingcomponentes
 
introdução ao enterprise architect
introdução ao enterprise architectintrodução ao enterprise architect
introdução ao enterprise architect
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeans
 
Introdução ao jquery
Introdução ao jqueryIntrodução ao jquery
Introdução ao jquery
 
Java12
Java12Java12
Java12
 
Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 

Plus de Armando Daniel

Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streamsArmando Daniel
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connectionArmando Daniel
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreadingArmando Daniel
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filtersArmando Daniel
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)Armando Daniel
 
Java orientação a objetos (introdução) - exercicios
Java   orientação a objetos (introdução) - exerciciosJava   orientação a objetos (introdução) - exercicios
Java orientação a objetos (introdução) - exerciciosArmando Daniel
 
Java orientação a objetos (herança)
Java   orientação a objetos (herança)Java   orientação a objetos (herança)
Java orientação a objetos (herança)Armando Daniel
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipseArmando Daniel
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 

Plus de Armando Daniel (12)

Java code conventions
Java code conventionsJava code conventions
Java code conventions
 
Java recursos avançados - streams
Java   recursos avançados - streamsJava   recursos avançados - streams
Java recursos avançados - streams
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connection
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
 
Java recursos avançados - filters
Java   recursos avançados - filtersJava   recursos avançados - filters
Java recursos avançados - filters
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)
 
Java orientação a objetos (introdução) - exercicios
Java   orientação a objetos (introdução) - exerciciosJava   orientação a objetos (introdução) - exercicios
Java orientação a objetos (introdução) - exercicios
 
Java orientação a objetos (herança)
Java   orientação a objetos (herança)Java   orientação a objetos (herança)
Java orientação a objetos (herança)
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipse
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 

Java Swing GUI Curso

  • 1. Curso de Java by Antonio Rodrigues Carvalho Neto
  • 3. Java Graphical User Interface Para criar janelas gráficas no Java é preciso é preciso utilizar uma das bibliotecas gráficas disponíveis (AWT, Swing ou SWT). AWT foi uma primeira biblioteca gráfica criada para Java Swing é uma biblioteca gráfica mais utilizada para Java, pois tem todas as características da AWT é mais atualizada. SWT foi criada inicialmente pela IBM e hoje é mantida pela Eclipse foundation. O SWT é mais rápido do Swing. Neste curso utilizaremos uma biblioteca gráfica Swing.
  • 4. Java Graphical User Interface Antes de começarmos será preciso entender alguns conceitos da biblioteca gráfica Swing. Assim como as outras aplicações gráficas, os objetos são colocados em janelas e não diretamente sobre o Desktop. E mesmo dentro das janelas eles são organizados em Containers ou Paineis.
  • 5. Java Graphical User Interface Objeto gráfico ou Componente gráfico são os elementos que permitem ao usuário interagir com uma aplicação. Assim como botões, caixas de textos, rótulos, etc.. Container é uma área que permite uma “colagem” dos objetos gráficos.
  • 6. Elementos Gráficos Os objetos gráficos no Java são criados como objetos normais apartir das classes definidas na biblioteca gráfica (neste caso Swing). Para criar um elemento gráfico basta instanciar um objeto do tipo escolhido. Exemplo : Para criar uma caixa de texto é preciso instanciar um objeto da classe JTextField que é uma classe da biblioteca Swing que representa uma caixa de texto. JTextField caixa = new JTextField(); Nota : Alguns tipos objetos gráficos podem receber parametros quando estiverem sendo instanciados.
  • 7. Elementos Gráficos Para criar uma janela simples contendo uma frase “Hello World” é preciso seguir algumas etapas: Criar uma janela gráfica Instancie um objeto do tipo JFrame para criar uma nova janela. Sintaxe: JFrame <objeto> = new JFrame(<titulo>); Exemplo: JFrame janela = new JFrame(“My First Graphic Window”); Nota : Cada instancia de JFrame corresponde uma uma nova janela.
  • 8. Elementos Gráficos Crie um painel que servirá como conteiner para os objetos gráficos. Instancie um objeto do tipo JPanel para criar um novo painel. Sintaxe: JPanel <objeto> = new JPanel(); Exemplo: JPanel painel = new JPanel(); Nota : Cada instancia de JPanel corresponde uma um novo painel. Criar o objeto gráfico desejado Neste caso instancie um objeto do tipo JLabel para criar um novo rótulo. Sintaxe: JLabel <objeto> = new JLabel(<rótulo>); Exemplo: JLabel lblHello = new JLabel(“Hello World”); Nota : Cada instancia de JLabel corresponde uma um novo rótulo.
  • 9. Conectando os elementos A janela o conteiner e os demais objetos gráficos criados ficam dispersos na memória. mainWindow myPanel lblHello É preciso conectá-los uns aos outros para que apareçam dentro da janela.
  • 10. Conectando os elementos Primeiro conecte os objetos gráficos no conteiner. Sintaxe: <objeto conteiner>.add(<objeto gráfico>); Exemplo: painel.add(lblHello); painel lblHello janela
  • 11. Conectando os elementos Conecte agora o conteiner na janela gráfica Sintaxe: <objeto JFrame>.setContentPane(<objeto conteiner>); Exemplo: janela.setContentPane(painel); Nota : uma janela gráfica pode conter apenas um objeto do tipo conteiner. painel lblHello janela
  • 12. Mostrando os elementos Agora que os elementos estão conectados resta apenas determinar o tamanho da janela e torna-la visível. Para isto utilize as seguintes funções: Determinar o tamanho Sintaxe: <objeto janela>.setSize(<comprimento>, <altura>); Exemplo: janela.setSize(400, 200); Nota: O tamanho da janela é medido em pixels Tornar uma janela visível Sintaxe: <objeto janela>.setVisible(<visivel>); Exemplo: janela.setVisible(true); Nota: Se deixar como true uma janela ficará visível e se deixar como false ela se tornará invisível.
  • 13. Exercício Desenvolva uma aplicação conforme o layout ao lado, usando os comandos abaixo: JFrame <objeto janela> = new JFrame(<titulo>); JPanel <objeto painel> = new JPanel(); JLabel <objeto label> = new JLabel(<texto>); JTextField <objeto textfield> = new JTextField(); JButton <objeto button> = new JButton(<texto>); <objeto janela>.setContentPane( <objeto painel> ); <objeto painel>.add( <componente gráfico> ); <objeto janela>.setSize( <comprimento>, <largura>); <objeto janela>.setVisible( <boolean true ou false> );
  • 14. Código Completo O código completo para este exemplo ficaria assim: public class HelloWorld { public static void main(String[] args) { // Cria os elementos gráficos (janela, painel e objeto) JFrame janela = new JFrame(“My first Graphic Application”); JPanel painel = JPanel(); JLabel lblHello = new JLabel(“Hello World”); // Conecta os elementos painel.add(lblHello); janela.setContentPane(painel); // Mostra uma janela gráfica janela.setSize(400, 200); janela.setVisible(true); } }
  • 15. Herdando uma Janela Para manter uma melhor coesão a Janela pode ser feita em uma classe separada, tendo seus componentes como sendo variáveis de instância. A instanciação e conexão dos componentes gráficos será feita no construtor da Janela.
  • 16. Herdando uma Janela (cont.) Crie uma subclasse da classe JFrame: public classe MinhaJanela extends JFrame { } Crie o painel e os elementos gráficos como sendo variáveis de instância dentro da janela. public classe MinhaJanela extends JFrame { JPanel painel; JLabel lblHello; }
  • 17. Herdando uma Janela (cont.) Sobreescreva o constutor para instânciar e conectar os elementos gráficos uns aos outros. public classe MinhaJanela extends JFrame { JPanel painel; JLabel lblHello; public MinhaJanela() { // Instância os componentes gráficos painel = new JPanel(); lblHello = new JLabel(“Eu gosto de Java...”); // Conecta, uns aos outros painel.add(lblHello); this.setContentPane(painel); // Mostra a janela na tela this.setSize(300, 300); this.setVisible(true); } }
  • 18. Herdando uma Janela (cont.) Para mostrar a janela na tela basta criar um objeto do tipo MinhaJanela public classe Teste { public static void main(String[] args) { MinhaJanela jan = new MinhaJanela(); } }
  • 19. Outros objetos gráficos Existem outros objetos gráficos que podem ser utilizados para uma criação da interface gráfica.
  • 20. Outros objetos gráficos JTextField JLabel JButton JTextArea String getText() retorna uma String com o texto digitado dentro da area. void setText(String t) define um texto dentro da area boolean isEditable() retorna um boolean indicando se este objeto é editável void setEditable(boolean b) define se o objeto será editável ou não. Cria uma área de texto permitindo a visualização ou edição de um grande texto. Sintaxe : JTextArea <objeto> = new JTextArea( <linhas>, <colunas>); Exemplo : JTextArea name = new JTextArea(5, 20); String getText() retorna um String com o conteúdo do botão. void setText(String t) define um novo texto para ser o conteúdo do botão. void setActionCommand(String actionCommand) define o nome da ação que botão irá fazer. Normalmente a ação tem o mesmo valor contido no nome do botão. String getActionCommand() retorna o nome da ação do botão. Implementa um botão o qual mostra um texto. Sua utilização é para acionar uma determinada ação quando for pressionado. Sintaxe : JButton <objeto> = new JButton (String <conteúdo>); Exemplo : JButton name = new JButton(“Ok”); String getText() retorna um String com o conteúdo do rótulo. void setText(String t) coloca um novo texto no rótulo. Cria um espaço onde pode ser exibido um texto curto uma imagem ou ambos. Sintaxe : JLabel <objeto> = new JLabel(String <conteúdo>); Exemplo : JLabel name = new JLabel(“hello world”); String getText() retorna um String com o texto digitado dentro da caixa. void setText(String t) define um texto dentro da caixa. boolean isEditable() retorna um boolean indicando se este objeto é editável void setEditable(boolean b) define se o objeto será editável ou não. Cria uma caixa de texto que pode ser utilizada pelo usuário para digitar informações. Sintaxe : JTextField <objeto> = new JTextField(<número colunas>); Exemplo : JTextField nome = new JTextField(20); Métodos ImportantesDescriçãoJava Swing Objeto Gráfico
  • 21. Exercício (para casa) Desenvolva uma aplicação conforme o layout abaixo:
  • 22. Referências Java como programar 6ª edição Capítulo 11 e Capítulo 22 Use a cabeça Java Capitulo 12 pags. 251 a 253