Linguagem de Programa
Linguagem de Programa
ç
ç
ão Java II
ão Java II
Aula 2
Aula 2
Prof. Me. Alexandre Rômolo Moreira Feitosa
Prof. Me. Alexandre Rômolo Moreira Feitosa
O Instrutor
O Instrutor
Prof. Me. Alexandre Rômolo Moreira Feitosa
Prof. Me. Alexandre Rômolo Moreira Feitosa
Bacharel em Ciência da Computa
Bacharel em Ciência da Computa
ç
ç
ão
ão
pela Universidade Estadual de Londrina (1998).
pela Universidade Estadual de Londrina (1998).
Especialista em Desenvolvimento de
Especialista em Desenvolvimento de
Software para Internet pela UNOPAR (2003).
Software para Internet pela UNOPAR (2003).
Mestre em Inform
Mestre em Inform
á
á
tica pela UFPR (2006).
tica pela UFPR (2006).
Fundador e Diretor T
Fundador e Diretor T
é
é
cnico da
cnico da
Inflammatio
Inflammatio
Entretenimento, empresa
Entretenimento, empresa
desenvolvedora de Softwares de Entretenimento e solu
desenvolvedora de Softwares de Entretenimento e solu
ç
ç
ões WEB, de
ões WEB, de
1996 a 2004.
1996 a 2004.
Foi Analista de Sistemas na Sercomtel Telecomunica
Foi Analista de Sistemas na Sercomtel Telecomunica
ç
ç
ões de 2005 a
ões de 2005 a
2006, trabalhando na parte de engenharia com a tecnologia Java.
2006, trabalhando na parte de engenharia com a tecnologia Java.
Professor de Ensino Superior desde 2002. Atualmente
Professor de Ensino Superior desde 2002. Atualmente
é
é
professor
professor
efetivo da UTFPR, Campus Corn
efetivo da UTFPR, Campus Corn
é
é
lio Proc
lio Proc
ó
ó
pio.
pio.
Aluno de Doutorado da Universidade Federal do Paran
Aluno de Doutorado da Universidade Federal do Paran
á
á
.
.
e
Roteiro da Disciplina
Roteiro da Disciplina
Ferramentas de Desenvolvimento
Ferramentas de Desenvolvimento
Orienta
Orienta
ç
ç
ão a Objetos
ão a Objetos
Classes Abstratas
Classes Abstratas
Interface
Interface
Classe Interna
Classe Interna
Manipula
Manipula
ç
ç
ão de Datas
ão de Datas
Exce
Exce
ç
ç
ões
ões
Interface Grá
Interface Gr
áfica de Usu
fica de Usuá
ário com Swing
rio com Swing
Componentes B
Componentes B
á
á
sicos
sicos
Gerenciadores de Layouts
Gerenciadores de Layouts
Tratamento de Eventos
Tratamento de Eventos
Fluxo de dados (
Fluxo de dados (
streams
streams
)
)
Informes da Disciplina
Informes da Disciplina
Datas da Disciplina
Datas da Disciplina
08/05, 15/05 e 22/05
08/05, 15/05 e 22/05
Material da disciplina dispon
Material da disciplina dispon
í
í
vel em
vel em
http://moodle.cp.utfpr.edu.br
http://moodle.cp.utfpr.edu.br
na disciplina Linguagem de
na disciplina Linguagem de
Programa
Programa
ç
ç
ão Java II
ão Java II
Forma de avalia
Forma de avalia
ç
ç
ão
ão
Entrega dos exerc
Entrega dos exerc
í
í
cios passados nos slides at
cios passados nos slides at
é
é
30/06/10
30/06/10
na ferramenta
na ferramenta
moodle
moodle
.
.
Ser
Ser
á
á
entregue ao final da disciplina um CD
entregue ao final da disciplina um CD
-
-
ROM com todo o
ROM com todo o
material utilizado, e com material extra de estudo
material utilizado, e com material extra de estudo
recomendado.
Roteiro desta Aula
Roteiro desta Aula
Tecnologias para Interface Gr
Tecnologias para Interface Gr
á
á
fica
fica
AWT, Swing, Java 2D, JavaFX
AWT, Swing, Java 2D,
JavaFX, e Swing Application
, e Swing Application
Framework.
Framework.
Elementos t
Elementos t
í
í
picos de uma Interface Gr
picos de uma Interface Gr
á
á
fica
fica
Componentes b
Componentes b
á
á
sicos de GUI
sicos de GUI
–
–
Parte I
Parte I
Gerenciadores de Layout
Gerenciadores de Layout
Tratamento de Eventos
Tratamento de Eventos
Classes Adaptadoras
Classes Adaptadoras
Classes Internas
Classes Internas
Componentes B
Componentes B
á
á
sicos de GUI
sicos de GUI
–
–
Parte II
Parte II
Interfaces Gr
Mapa das Tecnologias
Mapa das Tecnologias
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Uma interface rica e eficiente é
Uma interface rica e eficiente
é
fundamental para o
fundamental para o
desenvolvimento de aplica
desenvolvimento de aplicaç
ções que tenham grande
ões que tenham grande
aceita
aceitaç
ção no mercado.
ão no mercado.
Java fornece vá
Java fornece v
árias tecnologias para desenvolvimento de
rias tecnologias para desenvolvimento de
interfaces gr
interfaces gr
á
á
ficas de usu
ficas de usu
á
á
rio (GUI) de alta qualidade.
rio (GUI) de alta qualidade.
Os principais pacotes são:
Os principais pacotes são:
AWT
AWT
–
–
java
java
.
.
awt
awt
SWING
SWING
–
–
javax.swing
javax
.swing
Java 2D
Java 2D
–
–
conjunto de v
conjunto de v
á
á
rios pacotes
rios pacotes
Al
Al
é
é
m de novas tecnologias propostas que ainda estão
m de novas tecnologias propostas que ainda estão
em amadurecimento, como o
em amadurecimento, como o
JavaFX
JavaFX
e o
e o
Swing
Swing
Application Framework (JSR 296)
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
O
O
JavaFX
JavaFX
é
é
a solu
a solu
ç
ç
ão da plataforma Java
ão da plataforma Java
para a cria
para a cria
ç
ç
ão de
ão de
aplica
aplica
ç
ç
ões gr
ões gr
á
á
ficas ricas para desktop, internet, e para
ficas ricas para desktop, internet, e para
dispositivos m
dispositivos m
ó
ó
veis
veis
.
.
O objetivo
O objetivo
é
é
que a
que a
mesma aplica
mesma aplica
ç
ç
ão (interface) seja
ão (interface) seja
adapt
adapt
á
á
vel automaticamente
vel automaticamente
para cada um destes destinos.
para cada um destes destinos.
Ela
Ela
concorre diretamente com o Flash
concorre diretamente com o Flash
da Adobe,
da Adobe,
e o
e o
Silverlight
Silverlight
da Microsoft.
da Microsoft.
Para
Para
desenvolver aplica
desenvolver aplica
ç
ç
ões em
ões em
JavaFX
JavaFX
é
é
necess
necess
á
á
rio instalar o
rio instalar o
JavaFX
JavaFX
SDK
SDK
al
al
é
é
m do Java SDK SE. Maiores informa
m do Java SDK SE. Maiores informa
ç
ç
ões no
ões no
site
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Para utilizar o
Para utilizar o
NetBeans
NetBeans
como editor
como editor
JavaFX
JavaFX
é
é
preciso baixar
preciso baixar
uma versão espec
uma versão espec
í
í
fica dele,
fica dele,
ou instalar posteriormente alguns
ou instalar posteriormente alguns
plugins
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Comparativo das solu
Comparativo das solu
ç
ç
ões:
ões:
Ainda carece de um maior
Ainda carece de um maior
amadurecimento da tecnologia (muito
amadurecimento da tecnologia (muito
recente).
recente).
Rumos incertos do futuro da tecnologia
Rumos incertos do futuro da tecnologia
Java ap
Java ap
ó
ó
s a aquisi
s a aquisi
ç
ç
ão da Sun pela Oracle.
ão da Sun pela Oracle.
Integrado com a plataforma
Integrado com a plataforma
Java. Permite reaproveitamento
Java. Permite reaproveitamento
de classes e bibliotecas feitas.
de classes e bibliotecas feitas.
Grande uso do Java em
Grande uso do Java em
dispositivos m
dispositivos m
ó
ó
veis.
veis.
JavaFX
JavaFX
Solu
Solu
ç
ç
ão propriet
ão propriet
á
á
ria.
ria.
Baixa portabilidade para sistemas
Baixa portabilidade para sistemas
operacionais diferentes do Windows.
operacionais diferentes do Windows.
Intregrado
Intregrado
com a plataforma
com a plataforma
.Net. Aceita diversas linguagens
.Net. Aceita diversas linguagens
para programa
para programa
ç
ç
ão.
ão.
Alta compacta
Alta compacta
ç
ç
ão de v
ão de v
í
í
deos de
deos de
alta qualidade.
alta qualidade.
Silverlight
Silverlight
Dificuldade na integra
Dificuldade na integra
ç
ç
ão com banco de
ão com banco de
dados.
dados.
Linguagem de programa
Linguagem de programa
ç
ç
ão interna
ão interna
espec
espec
í
í
fica (
fica (
ActionScript
ActionScript
).
).
Baixa compacta
Baixa compacta
ç
ç
ão em v
ão em v
í
í
deos de alta
deos de alta
qualidade.
qualidade.
Baixo uso para dispositivos m
Baixo uso para dispositivos m
ó
ó
veis.
veis.
Instalado em 98% dos
Instalado em 98% dos
computadores com acesso a
computadores com acesso a
internet.
internet.
Solu
Solu
ç
ç
ão com 10 anos de
ão com 10 anos de
mercado.
mercado.
Editor de constru
Editor de constru
ç
ç
ão visual
ão visual
bem completo.
bem completo.
Flash
Flash
Desvantagens
Desvantagens
Vantagens
Vantagens
Solu
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
AWT
AWT
-
-
Abstract
Abstract
Window
Window
Toolkit
Toolkit
Fornece suporte a interface gr
Fornece suporte a interface gr
á
á
fica de usu
fica de usu
á
á
rio (GUI),
rio (GUI),
tratamento de eventos, gerenciadores de layout.
tratamento de eventos, gerenciadores de layout.
Foi o primeiro pacote gr
Foi o primeiro pacote gr
á
á
fico criado no Java e
fico criado no Java e
é
é
a base das
a base das
interfaces gr
interfaces gr
á
á
ficas.
ficas.
Est
Est
á
á
diretamente ligada as fun
diretamente ligada as fun
ç
ç
ões implementadas nos
ões implementadas nos
sistema operacionais, a partir da classe
sistema operacionais, a partir da classe
java
java
.
.
awt
awt
.
.
peer
peer
.
.
O que faz com que os componentes deste pacote tenham
O que faz com que os componentes deste pacote tenham
comportamentos e aparências diferentes, de acordo com o
comportamentos e aparências diferentes, de acordo com o
sistema operacional onde estão sendo mostrados.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
SWING
SWING
Pacote incorporado ao Java a partir da versão 1.2 que
Pacote incorporado ao Java a partir da versão 1.2 que
é
é
uma extensão do pacote AWT, incorporando novas
uma extensão do pacote AWT, incorporando novas
funcionalidades e componentes mais avan
funcionalidades e componentes mais avan
ç
ç
ados, como:
ados, como:
Aparência e comportamento plug
Aparência e comportamento plug
á
á
veis (
veis (
Look
Look
&
&
Feel
Feel
)
)
Suporte a teclas de atalho (
Suporte a teclas de atalho (
Mnemônicas
Mnemônicas
)
)
Exibi
Exibi
ç
ç
ão de Dicas de Componentes (
ão de Dicas de Componentes (
HINT
HINT
ou
ou
TIPS
TIPS
)
)
Suporte a tecnologias de
Suporte a tecnologias de
aux
aux
í
í
lio a deficientes f
lio a deficientes f
í
í
sicos
sicos
.
.
Suporte a caracter
Suporte a caracter
í
í
stica de Arrastar e Soltar objetos
stica de Arrastar e Soltar objetos
(
(
Drag&Drop
Drag&Drop
).
).
Suporte ao
Suporte ao
Java 2D
Java 2D
, API avan
, API avan
ç
ç
ada para manipula
ada para manipula
ç
ç
ão de
ão de
gr
gr
á
á
ficos e imagens 2D.
ficos e imagens 2D.
Suporte para
Suporte para
localiza
localiza
ç
ç
ão
ão
da interface com o usu
da interface com o usu
á
á
rio. Para
rio. Para
adapt
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
SWING
SWING
O pacote Swing
O pacote Swing
possui todos os componentes gr
possui todos os componentes gr
á
á
ficos do
ficos do
AWT
AWT
(Button,
(Button,
TextField
TextField
,
,
Label
Label
, etc..), s
, etc..), s
ó
ó
que suportando
que suportando
estas novas funcionalidades.
estas novas funcionalidades.
O Swing possui alguns
O Swing possui alguns
componentes avan
componentes avan
ç
ç
ados de
ados de
interfaces exclusivos
interfaces exclusivos
e que não são suportados pelo AWT.
e que não são suportados pelo AWT.
(
(
JSlider
JSlider
,
,
JTable
JTable
,
,
JTree
JTree
, etc..)
, etc..)
O
O
nome da classe da maioria dos componentes do Swing
nome da classe da maioria dos componentes do Swing
come
come
ç
ç
a com J
a com J
. (
. (
JButton
JButton
,
,
JTextField
JTextField
,
,
JLabel
JLabel
, etc..)
, etc..)
A maioria dos seus
A maioria dos seus
componentes são constru
componentes são constru
í
í
dos 100%
dos 100%
em Java
em Java
. O que torna a interface port
. O que torna a interface port
á
á
vel em termos de
vel em termos de
aparência e comportamento. Ela poder
aparência e comportamento. Ela poder
á
á
ser a mesma em
ser a mesma em
todos os sistemas suportados pelo JSE.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Exemplos de Interfaces Gr
Exemplos de Interfaces Gr
á
á
ficas em Java
ficas em Java
A p
A p
á
á
gina a seguir contem exemplos de
gina a seguir contem exemplos de
Applets
Applets
que
que
mostram as principais tecnologias gr
mostram as principais tecnologias gr
á
á
ficas da versão J2SE
ficas da versão J2SE
5.0. Interpretadas no Java
5.0. Interpretadas no Java
Plug
Plug
-
-
in
in
.
.
http://java.sun.com/products/plugin/1.5.0/demos/applets.html
http://java.sun.com/products/plugin/1.5.0/demos/applets.html
Podemos verificar todo o potencial e diversidade de uso
Podemos verificar todo o potencial e diversidade de uso
dos componentes do Swing acessando o exemplo
dos componentes do Swing acessando o exemplo
SwingSet2 Demo
SwingSet2 Demo
. Preparado especialmente pela equipe da
. Preparado especialmente pela equipe da
Sun e pela Netscape para este prop
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Exemplos de Interfaces Gr
Exemplos de Interfaces Gr
á
á
ficas em Java
ficas em Java
Outra exemplo fundamental é
Outra exemplo fundamental
é
o Java2D Demo
o
Java2D Demo, que
, que
mostra todas as possibilidades da API Java2D para
mostra todas as possibilidades da API Java2D para
manipula
manipulaç
ção de gr
ão de grá
áficos 2D. Fun
ficos 2D. Fun
ções estas que são
ç
ões estas que são
suportadas pelos componentes do Swing.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JFC
JFC
–
–
Java
Java
Foundation
Foundation
Classes
Classes
É
É
um grande conjunto de classes que fazem parte da
um grande conjunto de classes que fazem parte da
plataforma Java 2 Standard
plataforma Java 2 Standard
Edition
Edition
é
é
que
que
suportam a
suportam a
constru
constru
ç
ç
ão de interfaces gr
ão de interfaces gr
á
á
ficas de usu
ficas de usu
á
á
rio, ricas e
rio, ricas e
comuns aos principais sistemas operacionais
comuns aos principais sistemas operacionais
(Windows,
(Windows,
MacOS
MacOS
, Linux, etc..).
, Linux, etc..).
Fornecem mecanismos para auxiliar o acesso de
Fornecem mecanismos para auxiliar o acesso de
pessoas com deficiência f
pessoas com deficiência f
ísica, a localiza
í
sica, a localiza
ção da
ç
ão da
interface, e o uso da API Java 2D.
interface, e o uso da API Java 2D.
O pacote AWT, SWING e o Java 2D fazem parte do
O pacote AWT, SWING e o Java 2D fazem parte do
JFC.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Elementos da Interface Java
Elementos da Interface Java
Container
Container
:
:
É
É
uma objeto que acomoda v
uma objeto que acomoda v
á
á
rios outros
rios outros
objetos de interface, que serão mostrados dentro dele.
objetos de interface, que serão mostrados dentro dele.
(
(
JApplet
JApplet
,
,
JFrame
JFrame
,
,
JWindow
JWindow
,
,
JPanel
JPanel
, etc..)
, etc..)
Controle (
Controle (
Component
Component
)
)
:
:
É
É
um objeto visual de interface
um objeto visual de interface
que poder
que poder
á
á
ser utilizado para intera
ser utilizado para intera
ç
ç
ão direta com o
ão direta com o
usu
usu
á
á
rio. (
rio. (
JButton
JButton
,
,
JTextField
JTextField
,
,
JLabel
JLabel
,
,
JMenu
JMenu
, etc..)
, etc..)
LayoutManager
LayoutManager
(Gerenciador de Layout)
(Gerenciador de Layout)
:
:
É
É
um objeto
um objeto
respons
respons
á
á
vel por definir a organiza
vel por definir a organiza
ç
ç
ão dos objetos de
ão dos objetos de
interface dentro de um objeto Container.
interface dentro de um objeto Container.
Listener
Listener
(Ouvidor de Eventos)
(Ouvidor de Eventos)
.
.
É
É
um objeto respons
um objeto respons
á
á
vel
vel
por tratar um evento disparado pelo usu
por tratar um evento disparado pelo usu
á
á
rio a partir da
rio a partir da
intera
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Etapas para constru
Etapas para constru
ç
ç
ão de Interfaces Gr
ão de Interfaces Gr
á
á
ficas
ficas
1.
1.
Criaç
Cria
ção do objeto Container.
ão do objeto Container.
2.
2.
Cria
Cria
ç
ç
ão do objeto gerenciador do Layout
ão do objeto gerenciador do Layout
3.
3.
Associa
Associa
ç
ç
ão (Registro) do objeto Gerenciador de
ão (Registro) do objeto Gerenciador de
Layout com o objeto Container que ele gerenciar
Layout com o objeto Container que ele gerenciar
á
á
.
.
4.
4.
Criaç
Cria
ção dos objetos
ão dos objetos Component
Component
para montagem da
para montagem da
interface.
interface.
5.
5.
Criaç
Cria
ção dos objetos Ouvidores de Eventos.
ão dos objetos Ouvidores de Eventos.
6.
6.
Associa
Associa
ção (Registro) dos objetos Ouvidores de
ç
ão (Registro) dos objetos Ouvidores de
Eventos com os respectivos objetos
Eventos com os respectivos objetos Component
Component.
.
7.
7.
Adi
Adi
ção dos objetos
ç
ão dos objetos Component
Component
ao objeto Container.
ao objeto Container.
8.
Componentes B
Componentes B
á
á
sicos
sicos
de GUI
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Hierarquia Fundamental de Classes
Hierarquia Fundamental de Classes
java.awt.Component
java.awt.Container
javax.swing.JComponent
java.lang.Object
Repare que um
Container também é
um Component
java.awt.TextField
java.awt.TextArea
java.awt.ScrollBar
java.awt.TextComponent
java.awt.List
java.awt.Label
java.awt.Container
java.awt.Choice
java.awt.CheckBox
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Component
Component
–
–
java
java
.
.
awt
awt
.
.
Component
Component
É
É
a superclasse dos componentes visuais de interface,
a superclasse dos componentes visuais de interface,
que são os controles e os objetos Container. Tanto do
que são os controles e os objetos Container. Tanto do
pacote AWT quanto do pacote SWING.
pacote AWT quanto do pacote SWING.
java.awt.Component
java.awt.Canvas
java.awt.Button
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Component
Component
–
–
java
java
.
.
awt
awt
.
.
Component
Component
Alguns m
Alguns m
étodos:
é
todos:
Dimension
Dimension
getSize
getSize
()
()
: retorna um objeto
: retorna um objeto
Dimension
Dimension
com o tamanho (altura e
com o tamanho (altura e
largura) em pixel do componente.
largura) em pixel do componente.
void
void
setSize
setSize
(int largura, int altura)
(int largura, int altura)
: Define a largura e altura do componente.
: Define a largura e altura do componente.
void
void
setLocation
setLocation
(int x,
(int x,
inty
inty
)
)
: Defina a posi
: Defina a posi
ç
ç
ão x e y do componente, a
ão x e y do componente, a
posi
posi
ç
ç
ão
ão
é
é
relativa ao container onde o componente est
relativa ao container onde o componente est
á
á
inserido.
inserido.
setBounds
setBounds
(int x, int y, int largura, int altura)
(int x, int y, int largura, int altura)
: Define a largura, altura
: Define a largura, altura
posi
posi
ç
ç
ão x e posi
ão x e posi
ç
ç
ão y do componente. A posi
ão y do componente. A posi
ç
ç
ão
ão
é
é
relativa ao container
relativa ao container
onde est
onde est
á
á
localizado o componente.
localizado o componente.
void
void
setFont
setFont
(
(
Font
Font
c)
c)
: Define a fonte usada para desenhar os textos do
: Define a fonte usada para desenhar os textos do
componente.
componente.
void
void
setBackground
setBackground
(
(
Color
Color
c)
c)
: Define a cor de fundo do componente.
: Define a cor de fundo do componente.
void
void
setForeground
setForeground
(
(
Color
Color
c)
c)
: Define a cor do primeiro plano do componente.
: Define a cor do primeiro plano do componente.
void
void
setVisible
setVisible
(
(
boolean
boolean
b)
b)
: Define se o componente est
: Define se o componente est
á
á
vis
vis
í
í
vel ou não.
vel ou não.
void
void
setEnabled
setEnabled
(
(
boolean
boolean
b)
b)
: Define se o componente est
: Define se o componente est
á
á
habilitado ou não.
habilitado ou não.
Um componente habilitado gera eventos.
DragWindow
javax.swing.JWindow
javax.swing.JComponet
EditorContainer
CellRendererPane
BasicSplitPaneDivider
java.awt.Dialog
java.awt.Window
java.awt.ScrollPane
java.awt.Panel
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Container
Container
–
–
java
java
.
.
awt
awt
.Container
.Container
Um Container é
Um Container
é
um componente sobre o qual os
um componente sobre o qual os
componentes visuais de controle são posicionados.
componentes visuais de controle são posicionados.
Quem define como os controles serão posicionados
Quem define como os controles serão posicionados
são os gerenciadores de Layout (Layout Manager).
são os gerenciadores de Layout (Layout Manager).
java.awt.Container
java.awt.Frame
java.applet.Applet
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
Container
Container
–
–
java
java
.
.
awt
awt
.Container
.Container
Alguns m
Alguns m
é
é
todos:
todos:
void
void
setLayout
setLayout
(
(
LayoutManager
LayoutManager
m)
m)
: Define o gerenciador de layout
: Define o gerenciador de layout
a ser utilizado pelo container para posicionar os componentes.
a ser utilizado pelo container para posicionar os componentes.
void
void
add
add
(
(
Component
Component
c)
c)
: Adiciona um componente ao container. A
: Adiciona um componente ao container. A
posi
posi
ç
ç
ão deste componente depende do gerenciador de layout
ão deste componente depende do gerenciador de layout
registrado ao container.
registrado ao container.
void
void
remove(
remove(
Component
Component
c)
c)
: Remove este componente do
: Remove este componente do
container.
container.
void
void
removeAll
removeAll
()
()
: Remove todos os componentes do Container.
: Remove todos os componentes do Container.
void
void
paint
paint
(
(
Graphics
Graphics
g)
g)
: M
: M
é
é
todo invocado automaticamente toda vez
todo invocado automaticamente toda vez
que o container necessita ser redesenhado. Usualmente se redefin
que o container necessita ser redesenhado. Usualmente se redefin
e
e
este m
este m
é
é
todo para desenhar a interface gr
todo para desenhar a interface gr
á
á
fica do container (Exceto
fica do container (Exceto
os controles que são desenhados pelo gerenciador de Layout).
os controles que são desenhados pelo gerenciador de Layout).
invalidate
invalidate
()
()
: Marca o container como inv
: Marca o container como inv
á
á
lido. Caso o Container
lido. Caso o Container
esteja associado a um
esteja associado a um
LayoutManager
LayoutManager
este ir
este ir
á
á
verificar se os
verificar se os
objetos deverão ser reposicionados.
javax.swing.JTable
javax.swing.JPanel
javax.swing.JOptionPane
javax.swing.JList
javax.swing.JLabel
javax.swing.JComboBox
javax.swing.AbstractButton
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JComponent
JComponent
–
–
javax
javax
.swing.
.swing.
JComponent
JComponent
Superclasse de todos dos componentes visuais e da
Superclasse de todos dos componentes visuais e da
maioria das classes Container do pacote Swing.
maioria das classes Container do pacote Swing.
Implemente novas funcionalidades que a classe
Implemente novas funcionalidades que a classe
java
java.
.awt
awt.
.Component
Component
não suporta.
não suporta.
javax.swing.JComponent
...
...
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JComponent
JComponent
–
–
javax
javax
.swing.
.swing.
JComponent
JComponent
Alguns m
Alguns m
étodos:
é
todos:
void
void
setBorder
setBorder
(
(
Border
Border
b)
b)
: Especifica a borda do componente.
: Especifica a borda do componente.
void
void
setToolTipText
setToolTipText
(String texto)
(String texto)
: Especifica o texto de ajuda que
: Especifica o texto de ajuda que
aparecer
aparecer
á
á
quando o mouse permanecer parado sobre o
quando o mouse permanecer parado sobre o
componente (HINT ou TIP)
componente (HINT ou TIP)
void
void
setMinimunSize
setMinimunSize
(
(
Dimension
Dimension
m)
m)
: Especifica a dimensão m
: Especifica a dimensão m
í
í
nima
nima
do componente. O parâmetro do tipo
do componente. O parâmetro do tipo
Dimension
Dimension
é
é
um objeto (new
um objeto (new
Dimension
Dimension
(int largura, int altura).
(int largura, int altura).
void
void
setMaximunSize
setMaximunSize
(
(
Dimension
Dimension
m)
m)
: Especifica a dimensão m
: Especifica a dimensão m
á
á
xima
xima
do componente. O parâmetro do tipo
do componente. O parâmetro do tipo
Dimension
Dimension
é
é
um objeto (new
um objeto (new
Dimension
Dimension
(int largura, int altura).
(int largura, int altura).
int
int
getX
getX
()
()
: retorna a posi
: retorna a posi
ç
ç
ão X do componente referente ao
ão X do componente referente ao
Container onde ele se encontra.
Container onde ele se encontra.
int
int
getY
getY
()
()
: retorna a posi
: retorna a posi
ç
ç
ão Y do componente referente ao
ão Y do componente referente ao
Container onde ele se encontra.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JWindow
JWindow
–
–
javax
javax
.swing.
.swing.
JWindow
JWindow
Cria uma
Cria uma
janela sem suporte a menu suspenso
janela sem suporte a menu suspenso
(menu
(menu
pull
pull
-down
-
down), sem bordas e sem barra de t
), sem bordas e sem barra de tí
ítulo. Classe
tulo. Classe
filha da
filha da
java
java
.
.
awt.
awt
.Window
Window. Raramente
. Raramente é
é
utilizada.
utilizada.
Alguns construtores:
Alguns construtores:
JWindow
JWindow
()
()
: Cria uma janela sem nenhum pai.
: Cria uma janela sem nenhum pai.
JWindow
JWindow
(Frame pai)
(Frame pai)
: Cria uma janela com um pai. A janela
: Cria uma janela com um pai. A janela
s
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JWindow
JWindow
–
–
javax
javax
.swing.
.swing.
JWindow
JWindow
Alguns m
Alguns m
étodos:
é
todos:
Container
Container
getContentPane
getContentPane
()
()
: retorna um objeto do tipo
: retorna um objeto do tipo
container que
container que
é
é
usado para adicionar os controles dentre da
usado para adicionar os controles dentre da
janela.
janela.
addWindowListener
addWindowListener
(
(
WindowListener
WindowListener
l)
l)
: registra um objeto
: registra um objeto
ouvidor para tratar os eventos de janela.
ouvidor para tratar os eventos de janela.
setAlwaysOnTop
setAlwaysOnTop
(
(
boolean
boolean
b)
b)
: define se esta janela estar
: define se esta janela estar
á
á
sempre em primeiro plano ou não.
sempre em primeiro plano ou não.
boolean
boolean
isActive
isActive
()
()
: retorna
: retorna
true
true
se a janela est
se a janela est
á
á
ativa.
ativa.
boolean
boolean
isFocused
isFocused
()
()
: retorna
: retorna
true
true
se a janela
se a janela
é
é
o
o
componente que est
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
ExemploJWindow
ExemploJWindow
package br.com.
package br.com.
alexandrefeitosa
alexandrefeitosa
.
.
cursojse
cursojse
.exemplos.
.exemplos.
jwindow
jwindow
;
;
import
import
javax
javax
.swing.
.swing.
JWindow
JWindow
;
;
import
import
javax
javax
.swing.
.swing.
JLabel
JLabel
;
;
public
public
class
class
ExemploJWindow
ExemploJWindow
extends
extends
JWindow
JWindow
{
{
ExemploJWindow
ExemploJWindow
(){
(){
JLabel
JLabel
label
label
= new
= new
JLabel
JLabel
(" Exemplo de Janela
(" Exemplo de Janela
JWindow
JWindow
");
");
getContentPane
getContentPane
().
().
add
add
(
(
label
label
);
);
setSize
setSize
(200,200);
(200,200);
setLocation
setLocation
(200,200);
(200,200);
setAlwaysOnTop
setAlwaysOnTop
(
(
true
true
);
);
setVisible
setVisible
(
(
true
true
);
);
}
}
public
public
static
static
void
void
main
main
(String[]
(String[]
args
args
) {
) {
ExemploJWindow
ExemploJWindow
meu = new
meu = new
ExemploJWindow
ExemploJWindow
();
();
}
}
}
}
Adiciona um JLabel a Janela. Técnica de
Encadeamento de Operadores.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JFrame
JFrame
–
–
javax
javax
.swing.
.swing.
JFrame
JFrame
Cria uma
Cria uma
janela com suporte a menu suspenso
janela com suporte a menu suspenso
(opcional),
(opcional),
com bordas e com barra de t
com bordas e com barra de t
í
í
tulo
tulo
. Classe
. Classe
filha da
filha da
java
java
.
.
awt.Frame. Container Swing mais
awt
.Frame. Container Swing mais
utilizado.
utilizado.
Alguns construtores:
Alguns construtores:
JFrame
JFrame
()
()
: Cria um novo frame sem nenhum t
: Cria um novo frame sem nenhum t
í
í
tulo para a
tulo para a
janela.
janela.
JFrame
JFrame
(String nome)
(String nome)
: Cria um novo frame com o t
: Cria um novo frame com o t
í
í
tulo
tulo
especificado para a janela.
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JFrame
JFrame
–
–
javax
javax
.swing.
.swing.
JFrame
JFrame
Alguns m
Alguns m
étodos:
é
todos:
setLayout
setLayout
(
(
LayoutManager
LayoutManager
l)
l)
: Registra o objeto gerenciador
: Registra o objeto gerenciador
de Layout que ser
de Layout que ser
á
á
respons
respons
á
á
vel por organizar a disposi
vel por organizar a disposi
ç
ç
ão
ão
dos controles.
dos controles.
setJMenuBar
setJMenuBar
(
(
JMenuBar
JMenuBar
menu)
menu)
: Define o objeto
: Define o objeto
JMenuBar
JMenuBar
que ser
que ser
á
á
o menu suspenso do Frame.
o menu suspenso do Frame.
setTitle
setTitle
(String titulo)
(String titulo)
: Defina o texto da barra de t
: Defina o texto da barra de t
í
í
tulo do
tulo do
Frame.
Frame.
setResizable
setResizable
(
(
boolean
boolean
b)
b)
: Define se o Frame poder
: Define se o Frame poder
á
á
ser
ser
redimensionado pelo usu
redimensionado pelo usu
á
á
rio. Caso seja configurado como
rio. Caso seja configurado como
false
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JFrame
JFrame
–
–
javax
javax
.swing.
.swing.
JFrame
JFrame
Alguns m
Alguns m
étodos:
é
todos:
setDefaultCloseOperation
setDefaultCloseOperation
(int o)
(int o)
: Define qual a opera
: Define qual a opera
ç
ç
ão padrão a
ão padrão a
ser realizado pelo Frame caso o usu
ser realizado pelo Frame caso o usu
á
á
rio clique no botão fechar. O
rio clique no botão fechar. O
parâmetro passado
parâmetro passado
é
é
uma das seguintes constantes:
uma das seguintes constantes:
DO_NOTHING_ON_CLOSE
DO_NOTHING_ON_CLOSE
:
:
Não
Não
realiza
realiza
nenhuma
nenhuma
opera
opera
ç
ç
ão
ão
.
.
Deixa
Deixa
que
que
o
o
WindowListener
WindowListener
registra
registra
proceda
proceda
com o
com o
fechamento
fechamento
da
da
janela
janela
.
.
HIDE_ON_CLOSE
HIDE_ON_CLOSE
:
:
Automaticamente
Automaticamente
oculta
oculta
o frame e
o frame e
inova
inova
qualquer
qualquer
WindowListener
WindowListener
registrado
registrado
.
.
DISPOSE_ON_CLOSE
DISPOSE_ON_CLOSE
:
:
Automaticamente
Automaticamente
oculta
oculta
e
e
libera
libera
da
da
mem
mem
ó
ó
ria
ria
o
o
Frame.
Frame.
Depois
Depois
inova
inova
qualquer
qualquer
WindowListener
WindowListener
registrado
registrado
pelo
pelo
frame.
frame.
EXIT_ON_CLOSE
EXIT_ON_CLOSE
:
:
Sai
Sai
da
da
aplica
aplica
ç
ç
ão
ão
usanto
usanto
o
o
m
m
é
é
todo
todo
System.exit
System.exit
.
.
Est
Est
á
á
op
op
ç
ç
ão
ão
s
s
ó
ó
pode
pode
ser
ser
usado
usado
em
em
programas
programas
Java Application.
Java Application.
Todos estes parâmetros são constantes
Todos estes parâmetros são constantes
static
static
que
que
podem ser
podem ser
acessadas atrav
acessadas atrav
é
é
s do nome da Classe
s do nome da Classe
JFrame
JFrame
. O uso deste m
. O uso deste m
é
é
todo
todo
é
é
mais pr
mais pr
á
á
tico do que implementar a interface
tico do que implementar a interface
WindowListener
WindowListener
para
para
apenas tratar o evento de
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JFrame
JFrame
–
–
javax
javax
.swing.
.swing.
JFrame
JFrame
Alguns m
Alguns m
étodos:
é
todos:
setExtendedState
setExtendedState
(int
(int
state
state
)
)
: Define o estado atual do Frame.
: Define o estado atual do Frame.
Pode ser uma das seguintes constantes:
Pode ser uma das seguintes constantes:
NORMAL
NORMAL
: O Frame fica no seu estado normal de exibi
: O Frame fica no seu estado normal de exibi
ç
ç
ão.
ão.
ICONIFIED
ICONIFIED
: O Frame
: O Frame
é
é
minimizado.
minimizado.
MAXIMIZED_HORIZ
MAXIMIZED_HORIZ
: O Frame
: O Frame
é
é
maximizado horizontalmente.
maximizado horizontalmente.
MAXIMIZED_VERT
MAXIMIZED_VERT
: O Frame
: O Frame
é
é
maximizado verticalmente.
maximizado verticalmente.
MAXIMIZED_BOTH
MAXIMIZED_BOTH
: O Frame
: O Frame
é
é
maximizado em todas as
maximizado em todas as
dire
dire
ç
ç
ões.
ões.
Todos estes parâmetros são constantes
Todos estes parâmetros são constantes
static
static
que podem ser
que podem ser
acessadas atrav
acessadas atrav
é
é
s do nome da Classe
s do nome da Classe
JFrame
JFrame
.
.
Algumas
Algumas
destas op
destas op
ç
ç
ões podem não ser suportadas em determinadas
ões podem não ser suportadas em determinadas
plataformas
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
JFrame
JFrame
–
–
javax
javax
.swing.
.swing.
JFrame
JFrame
Alguns m
Alguns m
étodos:
é
todos:
setIconImage
setIconImage
(
(
Image
Image
i)
i)
: Define a imagem que ser
: Define a imagem que ser
á
á
exibida
exibida
como
como
í
í
cone da Barra de t
cone da Barra de t
í
í
tulo e quando o Frame for
tulo e quando o Frame for
minimizado. Se não for definido uma imagem padrão ser
minimizado. Se não for definido uma imagem padrão ser
á
á
adotada.
adotada.
setIconsImagens
setIconsImagens
(
(
List
List
<?
<?
extends
extends
Image
Image
>
>
icones
icones
)
)
: Lista
: Lista
contendo v
contendo v
á
á
rios objetos filhos de
rios objetos filhos de
Image
Image
. O Sistema
. O Sistema
operacional ir
operacional ir
á
á
escolher qual
escolher qual
í
í
cone ser
cone ser
á
á
utilizado na Janela
utilizado na Janela
de acordo com a situa
de acordo com a situa
ç
ç
ão dela (Minimizada, Maximizada,
ão dela (Minimizada, Maximizada,
etc.). Somente
Interfaces Gr
Interfaces Gr
á
á
ficas
ficas
ExemploJFrame1
ExemploJFrame1
package br.com.
package br.com.alexandrefeitosaalexandrefeitosa..cursojsecursojse.exemplos..exemplos.jframejframe;; import
import javaxjavax.swing..swing.JFrameJFrame;;
import
import javaxjavax.swing..swing.JLabelJLabel;;
import
import javajava..awtawt.Container;.Container;
import
import javajava..awtawt..FlowLayoutFlowLayout;;
public
publicclassclassExemploJFrame1 ExemploJFrame1 extendsextendsJFrameJFrame{{
private
privateJLabelJLabellabellabel;; public
publicExemploJFrame1(){ExemploJFrame1(){
super("Exemplo
super("Exemplo JFrameJFrame");");
Container
Container containercontainer= = getContentPanegetContentPane();(); label
label= new = new JLabelJLabel(" Exemplo de Uso de (" Exemplo de Uso de JFrameJFrame");"); setLayout
setLayout(new (new FlowLayoutFlowLayout());());
container.
container.addadd((labellabel););
setLocation
setLocation(400,400);(400,400); setSize
setSize(300,100);(300,100); setResizable
setResizable((falsefalse););
setVisible
setVisible((truetrue);); }
}
public
publicstaticstaticvoidvoidmainmain(String[] (String[] argsargs) {) {
ExemploJFrame1 principal = new ExemploJFrame1();
ExemploJFrame1 principal = new ExemploJFrame1();
principal.
principal.setDefaultCloseOperationsetDefaultCloseOperation((JFrameJFrame.EXIT_ON_CLOSE);.EXIT_ON_CLOSE);
}
}