SlideShare uma empresa Scribd logo
1 de 69
Universidade Presbiteriana Mackenzie
Aula 8b: Gerenciadores de Layout
Prof. Ms. Daniel Arndt Alves
Faculdade de Computação e Informática
Linguagem de
Programação II
Daniel Arndt Alves Gerenciadores de Layout 1
Tópicos da Aula
• Gerenciadores de Layout
• Modelo de gerenciamento de
eventos no Java AWT
• Implementação básica de tratamento de
eventos
Daniel Arndt Alves Gerenciadores de Layout 2
O posicionamento de componentes pode ser controlado
através de gerenciadores de layout. O AWT possui
cinco gerenciadores de layout:
• FlowLayout
• GridLayout
• BorderLayout
• CardLayout
• GridBagLayout
Daniel Arndt Alves Gerenciadores de Layout 3
Gerenciadores de layout
Utilização dos gerenciadores
Uma vez instanciado o gerenciador, a atribuição deste a
um container é feita através da chamada:
container.setLayout(Instância do gerenciador);
A partir deste ponto, utiliza-se o método add para
adicionar os componentes dentro do container,
obedecendo-se as características de cada gerenciador.
Daniel Arndt Alves Gerenciadores de Layout 4
FlowLayout
Trata o container como um conjunto de linhas. A
altura das linhas é determinada pela altura dos
itens nelas contidos.
A classe FlowLayout possui três construtores:
public FlowLayout() (alinhamento CENTER)
public FlowLayout(int alinhamento)
public FlowLayout(int alinhamento,
int espaçamento horizontal,
int espaçamento vertical)
Daniel Arndt Alves Gerenciadores de Layout 5
FlowLayout
Alinhamento LEFT
Frame f=new Frame("Exemplo de Dialogo");
FlowLayout fluxo=new FlowLayout(FlowLayout.LEFT);
f.setLayout(fluxo);
Daniel Arndt Alves Gerenciadores de Layout 6
FlowLayout
Alinhamento CENTER
Frame f=new Frame("Exemplo de Dialogo");
FlowLayout fluxo=new flowLayout(FlowLayout.CENTER);
f.setLayout(fluxo);
Daniel Arndt Alves Gerenciadores de Layout 7
FlowLayout
Alinhamento RIGHT
Frame f=new Frame("Exemplo de Dialogo");
FlowLayout fluxo=new FlowLayout(FlowLayout.RIGHT);
f.setLayout(fluxo);
Daniel Arndt Alves Gerenciadores de Layout 8
FlowLayout
Espaçamento
Frame f=new Frame("Exemplo de Dialogo");
FlowLayout fluxo=new flowLayout(FlowLayout.CENTER, 5, 15);
f.setLayout(fluxo);
Daniel Arndt Alves Gerenciadores de Layout 9
GridLayout
Trata o container como uma matriz de linhas e colunas.
Possui dois construtores:
public GridLayout(int linhas, int colunas)
public GridLayout(int linhas, int colunas,
int espaçamento horizontal,
int espaçamento vertical)
Daniel Arndt Alves Gerenciadores de Layout 10
GridLayout
Frame f=new Frame("Exemplo de Dialogo");
GridLayout grid=new GridLayout(2, 3, 20, 10);
f.setLayout(grid);
Daniel Arndt Alves Gerenciadores de Layout 11
BorderLayout
Divide o container em até cinco partes, cujos
identificadores são:
North
West Center East
South
Container
Daniel Arndt Alves Gerenciadores de Layout 12
BorderLayout
Frame frame=new Frame("Exemplo de Dialogo");
frame.setLayout(new BorderLayout());
add("North", new Button("Norte"));
add("South", new Button("Sul"));
add("East", new Button("Leste"));
add("West", new Button("Oeste"));
add("Center", new Button("Centro"));
Daniel Arndt Alves Gerenciadores de Layout 13
CardLayout
Trata o container como uma pilha de fichas. Cada
componente é considerado uma ficha separada, e
apenas uma delas é visível de cada vez.
Possui o seguinte construtor básico:
public CardLayout()
Daniel Arndt Alves Gerenciadores de Layout 14
CardLayout
Frame frame=new Frame("Exemplo de Dialogo");
frame.setLayout(new CardLayout());
add(new Button("Norte"));
add(new Button("Sul"));
add(new Button("Leste"));
add(new Button("Oeste"));
add(new Button("Centro"));
Daniel Arndt Alves Gerenciadores de Layout 15
CardLayout
Cada um dos componentes adicionados segundo o
gerenciador CardLayout pode ser acessado
segundo os seguintes métodos:
public void first(Container pai);
public void last(Container pai);
public void next(Container pai);
public void previous(Container pai);
public void show(Container pai, String nome);
Daniel Arndt Alves Gerenciadores de Layout 16
CardLayout
Exemplo de Acesso
Frame frame=new Frame("Exemplo de Dialogo");
CardLayout ger=new CardLayout();
frame.setLayout(ger);
frame.add(new Button("Norte"));
frame.add(new Button("Sul"));
frame.add(new Button("Leste"));
frame.add(new Button("Oeste"));
frame.add(new Button("Centro"));
ger.first(frame); // Acessa o primeiro componente
ger.next(frame); // Acessa o próximo componente
Daniel Arndt Alves Gerenciadores de Layout 17
GridBagLayout
Funciona como o GridLayout, dividindo o container
em linhas e colunas. Porém, um componente pode
ocupar mais de uma célula. Ao adicionar um
componente num gerenciamento por
GridBagLayout, ele recebe uma
GridBagConstraint, que tem instruções de
posicionamento e dimensionamento.
O construtor da classe é bem simples:
public GridBagLayout()
Daniel Arndt Alves Gerenciadores de Layout 18
GridBagConstraint
Classe que especifica os detalhes de inserção de
componentes em containers, segundo o gerenciador
GridBagLayout.
Algumas atributos importantes da classe são:
• gridwidth: número de células em uma linha para
exibição do componente
• gridheight: número de células em uma coluna
para exibição do componente
O valor padrão de cada um destes atributos é 1.
Daniel Arndt Alves Gerenciadores de Layout 19
GridBagConstraint
Os atributos gridwidth e gridweight também podem
assumir valores especiais, indicados por:
• GridBagConstraints.REMAINDER : especifica que o
componente é último da linha.
• GridBagConstraints.RELATIVE : especifica que o componente é
o próximo numa linha/coluna.
Daniel Arndt Alves Gerenciadores de Layout 20
GridBagConstraint
Para atribuir uma “constraint” a um componente, faz-se:
1. Instancia-se a classe GridBagConstraints
2. Altera-se os atributos destas instância
3. Utiliza-se o método setContraints, da classe
GridBagLayout, com os seguintes parâmetros:
void setContraints(Component c,
GridBagConstraints g)
Daniel Arndt Alves Gerenciadores de Layout 21
GridBagLayout
Daniel Arndt Alves Gerenciadores de Layout 22
GridBagLayout
import java.awt.*;
import java.util.*;
import java.applet.Applet;
public class GridBagEx1 extends Applet {
void makebutton(String name,
GridBagLayout gridbag,
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
Daniel Arndt Alves Gerenciadores de Layout 23
GridBagLayout
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c =
new GridBagConstraints();
setFont(new Font("Helvetica", Font.PLAIN, 14));
setLayout(gridbag);
// Distribuição horizontal de espaço
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
Daniel Arndt Alves Gerenciadores de Layout 24
GridBagLayout
c.gridwidth = GridBagConstraints.REMAINDER;
makebutton("Button4", gridbag, c);
c.weightx = 0.0;
makebutton("Button5", gridbag, c);
c.gridwidth = GridBagConstraints.RELATIVE;
makebutton("Button6", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER;
makebutton("Button7", gridbag, c);
Daniel Arndt Alves Gerenciadores de Layout 25
GridBagLayout
c.gridwidth = 1;
c.gridheight = 2;
c.weighty = 1.0; // Distribuição vertical de espaço
makebutton("Button8", gridbag, c);
c.weighty = 0.0;
c.gridwidth = GridBagConstraints.REMAINDER;
c.gridheight = 1;
makebutton("Button9", gridbag, c);
makebutton("Button10", gridbag, c);
setSize(300, 100);
}
Daniel Arndt Alves Gerenciadores de Layout 26
Não há necessidade de se ficar vinculado
exclusivamente às classes de gerenciamento vistas
anteriormente.
Classes que definem gerenciamento de layout
implementam uma das seguintes interfaces:
• LayoutManager : layout sem constraints
• LayoutManager2: layout com constraints
Daniel Arndt Alves Gerenciadores de Layout 27
Implementação de gerenciadores de
Layout
Eventos estão relacionados com a parte dinâmica
de uma interface. Por exemplo, se houve um
clique de mouse em cima de um botão da
interface, diz-se que ocorreu um evento de
mouse.
O Java AWT implementa um mecanismo
bastante robusto para gerenciamento de
eventos.
Daniel Arndt Alves Gerenciadores de Layout 28
Eventos
Java AWT consegue gerenciar diretamente os seguintes
tipos básicos de eventos:
• eventos de mouse
• eventos de teclado
• eventos de ação
• eventos de foco
Daniel Arndt Alves Gerenciadores de Layout 29
Tipos de Eventos
Modelo de gerenciamento de eventos em Java AWT
A notificação de ocorrência e tratamento do evento
é baseada em dois métodos da classe
java.awt.Component:
• deliverEvent() : despacha o evento para o
componente
• postEvent() : chama o método
handleEvent() para verificar se o
componente poderia tratar o evento.
Daniel Arndt Alves Gerenciadores de Layout 30
Container
Componente Componente
Container
Componente Componente Componente
Container
Componente Componente
Evento
Daniel Arndt Alves Gerenciadores de Layout 31
Modelo de gerenciamento de eventos em Java AWT
Modelo de gerenciamento de eventos em Java AWT
Componente
Container
Componente Container
Componente Componente Componente Container
Componente Componente
deliverEvent()
deliverEvent()
deliverEvent()
deliverEvent()
Daniel Arndt Alves Gerenciadores de Layout 32
Componente
Container
Componente Container
Componente Componente Componente Container
Componente Componente
postEvent()
postEvent()
*
*
**
postEvent()
* if (handleEvent(Event) == false)
super.postEvent()
** handleEvent(Event)== true)
Daniel Arndt Alves Gerenciadores de Layout 33
Modelo de gerenciamento de eventos em Java AWT
Tratamento de eventos
Existem várias maneiras que um componente
pode implementar seu tratamento para um
determinado evento.
O ponto importante é entender que o método
handleEvent(Event) é o despachante de
eventos central para um componente.
Daniel Arndt Alves Gerenciadores de Layout 34
Método handleEvent
O método handleEvent é definido segundo o
seguinte protótipo:
public boolean handleEvent(Event evt);
Event é uma classe do AWT que abstrai as
características do evento e já vem instanciada
na chamada do método.
Daniel Arndt Alves Gerenciadores de Layout 35
Classe Event
A classe Event possui três atributos
importantes no tratamento de eventos:
• Object target : alvo do evento
• int id : tipo do evento (constantes)
• int key : código de tecla pressionada
Daniel Arndt Alves Gerenciadores de Layout 36
Atributo id
A consulta ao atributo id geralmente é feita via
constantes da classe Event:
Event.MOUSE_ENTER Event.MOUSE_EXIT
Event.MOUSE_MOVE Event.MOUSE_DOWN
Event.MOUSE_DRAG Event.MOUSE_UP
Event.MOUSE_UP Event.KEY_PRESS
Event.KEY_ACTION Event.KEY_RELEASE
Event.KEY_ACTION_RELEASE Event.ACTION_EVENT
Event.GOT_FOCUS Event.LOST_FOCUS
Daniel Arndt Alves Gerenciadores de Layout 37
Método handleEvent
O comportamento padrão do método handleEvent é
determinar se ocorreu (na seguinte ordem) os
eventos:
1. De mouse
2. De teclado
3. De ação (usuário quer que alguma ação ocorra)
4. De foco no componente
5. De perda de foco no componente
e chamar o método de tratamento correspondente.
Daniel Arndt Alves Gerenciadores de Layout 38
Eventos de mouse
Os eventos de mouse tratados pelo AWT são:
• entrar com mouse num componente
(id=Event.MOUSE_ENTER)
• sair com mouse de um componente
(id=Event.MOUSE_EXIT)
• movimentar o mouse sobre um componente
(id=Event.MOUSE_MOVE)
Daniel Arndt Alves Gerenciadores de Layout 39
Eventos de mouse
• Apertar botão do mouse sobre um componente
(id=Event.MOUSE_DOWN)
• Arrastar mouse com botão pressionado sobre um
componente (id = Event.MOUSE_DRAG)
• soltar botão do mouse sobre um componente
(id=Event.MOUSE_UP)
Daniel Arndt Alves Gerenciadores de Layout 40
Event.MOUSE_ENTER
Pode ser tratado dentro do método:
public boolean mouseEnter(Event evt, int x, int y)
(x, y) : coordenadas de entrada
Daniel Arndt Alves Gerenciadores de Layout 41
Event.MOUSE_EXIT
Pode ser tratado dentro do método:
public boolean mouseExit(Event evt, int x, int y)
(x, y) : coordenada de saída
Daniel Arndt Alves Gerenciadores de Layout 42
Event.MOUSE_MOVE
Pode ser tratado dentro do método:
public boolean mouseMove(Event evt, int x, int y)
(x, y) : coordenada do movimento
Daniel Arndt Alves Gerenciadores de Layout 43
Event.MOUSE_DOWN
Pode ser tratado dentro do método:
public boolean mouseDown(Event evt, int x, int y)
(x, y) : coordenada de pressionamento do botão
Daniel Arndt Alves Gerenciadores de Layout 44
Event.MOUSE_DRAG
Pode ser tratado dentro do método:
public boolean mouseDrag(Event evt, int x, int y)
(x, y) : coordenada de arrasto
Daniel Arndt Alves Gerenciadores de Layout 45
Event.MOUSE_UP
Pode ser tratado dentro do método:
public boolean mouseUp(Event evt, int x, int y)
(x, y) : coordenada onde botão foi solto
Daniel Arndt Alves Gerenciadores de Layout 46
Ainda dentro dos eventos de mouse, o método
handleEvent faz a verificação na
sequência:
1. MOUSE_ENTER
2. MOUSE_EXIT
3. MOUSE_MOVE
4. MOUSE_DOWN
5. MOUSE_DRAG
6. MOUSE_UP
Daniel Arndt Alves Gerenciadores de Layout 47
Ordem de Verificação
Exemplo
// Botão com todos os tratamentos de evento
import java.awt.*;
public class botao
extends Button{
botao(String rotulo){
// Construtor
super(rotulo);
}
Daniel Arndt Alves Gerenciadores de Layout 48
Exemplo
public boolean mouseEnter(Event evt, int x, int y){
System.out.println("Entrou no componente");
return(true);
}
public boolean mouseExit(Event evt, int x, int y){
System.out.println("Saiu do componente");
return(true);
}
public boolean mouseMove(Event evt, int x, int y){
System.out.println("Movimento sobre botão");
return(true);
}
Daniel Arndt Alves Gerenciadores de Layout 49
Exemplo
public boolean mouseDown(Event evt,int x,int y){
System.out.println(“Clique no componente”);
return(true);
}
public boolean mouseDrag(Event evt,int x,int y){
System.out.println(“Arrasto em cima do componente”);
return(true);
}
public boolean mouseUp(Event evt,int x,int y){
System.out.println(“Soltou em cima do botão”);
return(true);
}
} // Botão
Daniel Arndt Alves Gerenciadores de Layout 50
Eventos de teclado
Dois tipos de evento podem ocorrer no teclado:
• pressionar teclas
– Event.KEY_PRESS : teclas ASCII
– Event.KEY_ACTION : teclas não-ASCII
• soltar teclas
– Event.KEY_RELEASE : teclas ASCII
– Event.KEY_ACTION_RELEASE: teclas não-ASCII
Daniel Arndt Alves Gerenciadores de Layout 51
Event.KEY_PRESS
Event.KEY_ACTION
Podem ser tratados dentro do método:
public boolean keyDown(Event evt, int key)
key : código da tecla pressionada
Daniel Arndt Alves Gerenciadores de Layout 52
Event.KEY_RELEASE
Event.KEY_ACTION_RELEASE
Podem ser tratados dentro do método:
public boolean keyUp(Event evt, int key)
key : código da tecla pressionada
Daniel Arndt Alves Gerenciadores de Layout 53
Ordem de Verificação
Ainda dentro dos eventos de teclado, o método
handleEvent faz a verificação na seqüência:
1. KEY_PRESS e KEY_ACTION
2. KEY_RELEASE e KEY_ACTION_RELEASE
Daniel Arndt Alves Gerenciadores de Layout 54
Exemplo
// Botão com tratamento de teclado no botão
import java.awt.*;
public class botao
extends Button{
botao(String rotulo){
// Construtor
super(rotulo);
}
Daniel Arndt Alves Gerenciadores de Layout 55
Exemplo
public boolean keyDown(Event evt,int key){
if (key=='a')
setLabel("Tecla a pressionada");
else if (key==Event.LEFT)
setLabel("Seta esquerda pressionada");
else if (key==Event.RIGHT)
setLabel("Seta direita pressionada");
return(true);
}
}// botao
Daniel Arndt Alves Gerenciadores de Layout 56
Eventos de ação
Quando ocorre um evento de ação
(Event.ACTION_EVENT), o tratamento pode ser
colocado dentro do método:
public boolean action(Event evt, Object arg)
arg - depende do componente onde ocorreu a ação
Daniel Arndt Alves Gerenciadores de Layout 57
Argumento do evento de ação
Componente arg
Button Rótulo do botão
Checkbox Estado do checkbox
Choice Opção escolhida
List Opção escolhida
com duplo clique
TextField Conteúdo após
return pressionado
Daniel Arndt Alves Gerenciadores de Layout 58
Exemplo
public boolean action(Event evt,Object arg){
// Verifica se foi ação no botão
if (evt.target instanceof Button)
// Mostra rótulo do botão em maiúsculas
System.out.println(((String) arg).toUpperCase());
return(true);
}
Daniel Arndt Alves Gerenciadores de Layout 59
Evento de ganho de foco
Quando ocorre um evento de ganho de foco
(Event.GOT_FOCUS), o tratamento pode ser
colocado dentro do método:
public boolean gotFocus(Event evt, Object arg)
arg - depende do componente onde ocorreu a ação
Daniel Arndt Alves Gerenciadores de Layout 60
Evento de perda de foco
Quando ocorre um evento de perda de foco
(Event.LOST_FOCUS), o tratamento pode ser
colocado dentro do método:
public boolean lostFocus(Event evt, Object arg)
arg - depende do componente onde ocorreu a ação
Daniel Arndt Alves Gerenciadores de Layout 61
Outros Eventos
Alguns eventos, porém, não possuem uma rota
de tratamento bem definida como nos eventos
anteriores.
Neste caso, uma solução bem simples é alterar a
implementação do método handleEvent para
direcionar o tratamento de tais eventos.
Daniel Arndt Alves Gerenciadores de Layout 62
Exemplo 1
Tratamento de barras de rolagem
import java.awt.*;
class exemplo
extends Frame{
Scrollbar barra=new Scrollbar();
...
public boolean handleEvent(Event evt){
if (evt.target==barra)
barra.setValue(((Integer) evt.arg).intValue());
return(true);
}
}
Daniel Arndt Alves Gerenciadores de Layout 63
Exemplo 2
Tratamento de fechamento da janela principal
import java.awt.*;
class exemplo
extends Frame{
Scrollbar barra=new Scrollbar();
...
public boolean handleEvent(Event evt){
if (evt.id==Event.WINDOW_DESTROY)
System.exit(0);
return(true);
}
}
Daniel Arndt Alves Gerenciadores de Layout 64
Tratamento mais complexo de eventos
Para um tratamento mais complexo de eventos podem ser
implementados métodos de várias interfaces de eventos
do pacote java.awt.Event. Por exemplo:
• MouseListener
• ActionListener
• WindowListener
Daniel Arndt Alves Gerenciadores de Layout 65
Daniel Arndt Alves Gerenciadores de Layout 66
Daniel Arndt Alves Gerenciadores de Layout 67
Imagens
• http://www.goldb.org/goldblog/cmg_images/
real_programmers_binary.jpg
• http://sandersconsulting.com/Portals/58319/i
mages/checklist.jpg
Daniel Arndt Alves Gerenciadores de Layout 68
Obrigado
Daniel Arndt Alves
http://www.progdan.pro.br/
daniel.alves@mackenzie.br
progdan@progdan.pro.br
Daniel Arndt Alves Gerenciadores de Layout 69

Mais conteúdo relacionado

Mais procurados

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Leinylson Fontinele
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
1. Pengenalan Visual Basic .Net - Pemrograman I
1. Pengenalan Visual Basic .Net - Pemrograman I1. Pengenalan Visual Basic .Net - Pemrograman I
1. Pengenalan Visual Basic .Net - Pemrograman IIfan Ok
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysLoiane Groner
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Elaine Cecília Gatto
 
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objekrizki adam kurniawan
 
Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3Pedro Neto
 
Advance Java Programming (CM5I) 2.Swing
Advance Java Programming (CM5I) 2.SwingAdvance Java Programming (CM5I) 2.Swing
Advance Java Programming (CM5I) 2.SwingPayal Dungarwal
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Ricardo Terra
 

Mais procurados (20)

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
1. Pengenalan Visual Basic .Net - Pemrograman I
1. Pengenalan Visual Basic .Net - Pemrograman I1. Pengenalan Visual Basic .Net - Pemrograman I
1. Pengenalan Visual Basic .Net - Pemrograman I
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 
Array [Larik]
Array [Larik]Array [Larik]
Array [Larik]
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Awt
AwtAwt
Awt
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
 
Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3Capitulo 14 -_componentes_gui_parte_3
Capitulo 14 -_componentes_gui_parte_3
 
Advance Java Programming (CM5I) 2.Swing
Advance Java Programming (CM5I) 2.SwingAdvance Java Programming (CM5I) 2.Swing
Advance Java Programming (CM5I) 2.Swing
 
Rpl
RplRpl
Rpl
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
javathreads
javathreadsjavathreads
javathreads
 
Tabela Hash com Lista Encadeada
Tabela Hash com Lista EncadeadaTabela Hash com Lista Encadeada
Tabela Hash com Lista Encadeada
 

Destaque (20)

Gerenciadores de referências bibliográficas
Gerenciadores de referências bibliográficasGerenciadores de referências bibliográficas
Gerenciadores de referências bibliográficas
 
Desligar pc
Desligar pcDesligar pc
Desligar pc
 
Aula - Gerenciadores de layout
Aula - Gerenciadores de layoutAula - Gerenciadores de layout
Aula - Gerenciadores de layout
 
Tutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMITutorial passo a passo sobre RMI
Tutorial passo a passo sobre RMI
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Hiearquia Window
Hiearquia WindowHiearquia Window
Hiearquia Window
 
Java RMI
Java RMIJava RMI
Java RMI
 
Sessao
SessaoSessao
Sessao
 
Histórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de ProgramaçãoHistórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de Programação
 
Net beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e AtalhosNet beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e Atalhos
 
Java Swing
Java SwingJava Swing
Java Swing
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Powtoon
Powtoon Powtoon
Powtoon
 
Selection Sort
Selection SortSelection Sort
Selection Sort
 
Psicopatologia Linguagem E Pensamento
Psicopatologia   Linguagem E PensamentoPsicopatologia   Linguagem E Pensamento
Psicopatologia Linguagem E Pensamento
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 

Semelhante a Gerenciadores de Layout e Tratamento de Eventos no Java AWT

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
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layoutsArmando Daniel
 
Aula03 android layouts_views
Aula03 android layouts_viewsAula03 android layouts_views
Aula03 android layouts_viewsRoberson Alves
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II Verônica Veiga
 
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Bruno Ghisi
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com androidRicardo Ogliari
 
Testes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusTestes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusDenis L Presciliano
 
Pilares do desenvolvimento Mobile no Nubank
 Pilares do desenvolvimento Mobile no Nubank Pilares do desenvolvimento Mobile no Nubank
Pilares do desenvolvimento Mobile no NubankDevCamp Campinas
 
DevFest 2012 - Esquartejando sua Activity com Fragments
DevFest 2012 - Esquartejando sua Activity com FragmentsDevFest 2012 - Esquartejando sua Activity com Fragments
DevFest 2012 - Esquartejando sua Activity com FragmentsSuelen Carvalho
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Elaine Cecília Gatto
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
FLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth ImpactFLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth ImpactMichel Alves
 

Semelhante a Gerenciadores de Layout e Tratamento de Eventos no Java AWT (20)

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
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layouts
 
Java 17 Swing
Java 17 SwingJava 17 Swing
Java 17 Swing
 
Aula03 android layouts_views
Aula03 android layouts_viewsAula03 android layouts_views
Aula03 android layouts_views
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Cap4
Cap4Cap4
Cap4
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
 
Cap6
Cap6Cap6
Cap6
 
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Testes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusTestes em Aplicações Web com Cactus
Testes em Aplicações Web com Cactus
 
Pilares do desenvolvimento Mobile no Nubank
 Pilares do desenvolvimento Mobile no Nubank Pilares do desenvolvimento Mobile no Nubank
Pilares do desenvolvimento Mobile no Nubank
 
DevFest 2012 - Esquartejando sua Activity com Fragments
DevFest 2012 - Esquartejando sua Activity com FragmentsDevFest 2012 - Esquartejando sua Activity com Fragments
DevFest 2012 - Esquartejando sua Activity com Fragments
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
FLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth ImpactFLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth Impact
 

Mais de Daniel Arndt Alves

Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPDaniel Arndt Alves
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosDaniel Arndt Alves
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing ListenersDaniel Arndt Alves
 
Estrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoEstrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoDaniel Arndt Alves
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaDaniel Arndt Alves
 
Técnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da DisciplinaTécnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da DisciplinaDaniel Arndt Alves
 
Técnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de EnsinoTécnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de EnsinoDaniel Arndt Alves
 
Linguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de EnsinoLinguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de EnsinoDaniel Arndt Alves
 
Linguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da DisciplinaLinguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da DisciplinaDaniel Arndt Alves
 
Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)Daniel Arndt Alves
 
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e AdministrativosModelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e AdministrativosDaniel Arndt Alves
 

Mais de Daniel Arndt Alves (17)

Variaveis Superglobais
Variaveis SuperglobaisVariaveis Superglobais
Variaveis Superglobais
 
Programacao Modular
Programacao ModularProgramacao Modular
Programacao Modular
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Introducao ao PHP
Introducao ao PHPIntroducao ao PHP
Introducao ao PHP
 
Arquitetura web
Arquitetura webArquitetura web
Arquitetura web
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing Listeners
 
Estrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoEstrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de Ensino
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da Disciplina
 
Técnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da DisciplinaTécnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da Disciplina
 
Técnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de EnsinoTécnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de Ensino
 
Linguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de EnsinoLinguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de Ensino
 
Linguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da DisciplinaLinguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da Disciplina
 
Novos Recursos do Moodle 2
Novos Recursos do Moodle 2Novos Recursos do Moodle 2
Novos Recursos do Moodle 2
 
Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)
 
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e AdministrativosModelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
 

Último

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 

Último (20)

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 

Gerenciadores de Layout e Tratamento de Eventos no Java AWT

  • 1. Universidade Presbiteriana Mackenzie Aula 8b: Gerenciadores de Layout Prof. Ms. Daniel Arndt Alves Faculdade de Computação e Informática Linguagem de Programação II Daniel Arndt Alves Gerenciadores de Layout 1
  • 2. Tópicos da Aula • Gerenciadores de Layout • Modelo de gerenciamento de eventos no Java AWT • Implementação básica de tratamento de eventos Daniel Arndt Alves Gerenciadores de Layout 2
  • 3. O posicionamento de componentes pode ser controlado através de gerenciadores de layout. O AWT possui cinco gerenciadores de layout: • FlowLayout • GridLayout • BorderLayout • CardLayout • GridBagLayout Daniel Arndt Alves Gerenciadores de Layout 3 Gerenciadores de layout
  • 4. Utilização dos gerenciadores Uma vez instanciado o gerenciador, a atribuição deste a um container é feita através da chamada: container.setLayout(Instância do gerenciador); A partir deste ponto, utiliza-se o método add para adicionar os componentes dentro do container, obedecendo-se as características de cada gerenciador. Daniel Arndt Alves Gerenciadores de Layout 4
  • 5. FlowLayout Trata o container como um conjunto de linhas. A altura das linhas é determinada pela altura dos itens nelas contidos. A classe FlowLayout possui três construtores: public FlowLayout() (alinhamento CENTER) public FlowLayout(int alinhamento) public FlowLayout(int alinhamento, int espaçamento horizontal, int espaçamento vertical) Daniel Arndt Alves Gerenciadores de Layout 5
  • 6. FlowLayout Alinhamento LEFT Frame f=new Frame("Exemplo de Dialogo"); FlowLayout fluxo=new FlowLayout(FlowLayout.LEFT); f.setLayout(fluxo); Daniel Arndt Alves Gerenciadores de Layout 6
  • 7. FlowLayout Alinhamento CENTER Frame f=new Frame("Exemplo de Dialogo"); FlowLayout fluxo=new flowLayout(FlowLayout.CENTER); f.setLayout(fluxo); Daniel Arndt Alves Gerenciadores de Layout 7
  • 8. FlowLayout Alinhamento RIGHT Frame f=new Frame("Exemplo de Dialogo"); FlowLayout fluxo=new FlowLayout(FlowLayout.RIGHT); f.setLayout(fluxo); Daniel Arndt Alves Gerenciadores de Layout 8
  • 9. FlowLayout Espaçamento Frame f=new Frame("Exemplo de Dialogo"); FlowLayout fluxo=new flowLayout(FlowLayout.CENTER, 5, 15); f.setLayout(fluxo); Daniel Arndt Alves Gerenciadores de Layout 9
  • 10. GridLayout Trata o container como uma matriz de linhas e colunas. Possui dois construtores: public GridLayout(int linhas, int colunas) public GridLayout(int linhas, int colunas, int espaçamento horizontal, int espaçamento vertical) Daniel Arndt Alves Gerenciadores de Layout 10
  • 11. GridLayout Frame f=new Frame("Exemplo de Dialogo"); GridLayout grid=new GridLayout(2, 3, 20, 10); f.setLayout(grid); Daniel Arndt Alves Gerenciadores de Layout 11
  • 12. BorderLayout Divide o container em até cinco partes, cujos identificadores são: North West Center East South Container Daniel Arndt Alves Gerenciadores de Layout 12
  • 13. BorderLayout Frame frame=new Frame("Exemplo de Dialogo"); frame.setLayout(new BorderLayout()); add("North", new Button("Norte")); add("South", new Button("Sul")); add("East", new Button("Leste")); add("West", new Button("Oeste")); add("Center", new Button("Centro")); Daniel Arndt Alves Gerenciadores de Layout 13
  • 14. CardLayout Trata o container como uma pilha de fichas. Cada componente é considerado uma ficha separada, e apenas uma delas é visível de cada vez. Possui o seguinte construtor básico: public CardLayout() Daniel Arndt Alves Gerenciadores de Layout 14
  • 15. CardLayout Frame frame=new Frame("Exemplo de Dialogo"); frame.setLayout(new CardLayout()); add(new Button("Norte")); add(new Button("Sul")); add(new Button("Leste")); add(new Button("Oeste")); add(new Button("Centro")); Daniel Arndt Alves Gerenciadores de Layout 15
  • 16. CardLayout Cada um dos componentes adicionados segundo o gerenciador CardLayout pode ser acessado segundo os seguintes métodos: public void first(Container pai); public void last(Container pai); public void next(Container pai); public void previous(Container pai); public void show(Container pai, String nome); Daniel Arndt Alves Gerenciadores de Layout 16
  • 17. CardLayout Exemplo de Acesso Frame frame=new Frame("Exemplo de Dialogo"); CardLayout ger=new CardLayout(); frame.setLayout(ger); frame.add(new Button("Norte")); frame.add(new Button("Sul")); frame.add(new Button("Leste")); frame.add(new Button("Oeste")); frame.add(new Button("Centro")); ger.first(frame); // Acessa o primeiro componente ger.next(frame); // Acessa o próximo componente Daniel Arndt Alves Gerenciadores de Layout 17
  • 18. GridBagLayout Funciona como o GridLayout, dividindo o container em linhas e colunas. Porém, um componente pode ocupar mais de uma célula. Ao adicionar um componente num gerenciamento por GridBagLayout, ele recebe uma GridBagConstraint, que tem instruções de posicionamento e dimensionamento. O construtor da classe é bem simples: public GridBagLayout() Daniel Arndt Alves Gerenciadores de Layout 18
  • 19. GridBagConstraint Classe que especifica os detalhes de inserção de componentes em containers, segundo o gerenciador GridBagLayout. Algumas atributos importantes da classe são: • gridwidth: número de células em uma linha para exibição do componente • gridheight: número de células em uma coluna para exibição do componente O valor padrão de cada um destes atributos é 1. Daniel Arndt Alves Gerenciadores de Layout 19
  • 20. GridBagConstraint Os atributos gridwidth e gridweight também podem assumir valores especiais, indicados por: • GridBagConstraints.REMAINDER : especifica que o componente é último da linha. • GridBagConstraints.RELATIVE : especifica que o componente é o próximo numa linha/coluna. Daniel Arndt Alves Gerenciadores de Layout 20
  • 21. GridBagConstraint Para atribuir uma “constraint” a um componente, faz-se: 1. Instancia-se a classe GridBagConstraints 2. Altera-se os atributos destas instância 3. Utiliza-se o método setContraints, da classe GridBagLayout, com os seguintes parâmetros: void setContraints(Component c, GridBagConstraints g) Daniel Arndt Alves Gerenciadores de Layout 21
  • 22. GridBagLayout Daniel Arndt Alves Gerenciadores de Layout 22
  • 23. GridBagLayout import java.awt.*; import java.util.*; import java.applet.Applet; public class GridBagEx1 extends Applet { void makebutton(String name, GridBagLayout gridbag, GridBagConstraints c) { Button button = new Button(name); gridbag.setConstraints(button, c); add(button); } Daniel Arndt Alves Gerenciadores de Layout 23
  • 24. GridBagLayout public void init() { GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setFont(new Font("Helvetica", Font.PLAIN, 14)); setLayout(gridbag); // Distribuição horizontal de espaço c.weightx = 1.0; makebutton("Button1", gridbag, c); makebutton("Button2", gridbag, c); makebutton("Button3", gridbag, c); Daniel Arndt Alves Gerenciadores de Layout 24
  • 25. GridBagLayout c.gridwidth = GridBagConstraints.REMAINDER; makebutton("Button4", gridbag, c); c.weightx = 0.0; makebutton("Button5", gridbag, c); c.gridwidth = GridBagConstraints.RELATIVE; makebutton("Button6", gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; makebutton("Button7", gridbag, c); Daniel Arndt Alves Gerenciadores de Layout 25
  • 26. GridBagLayout c.gridwidth = 1; c.gridheight = 2; c.weighty = 1.0; // Distribuição vertical de espaço makebutton("Button8", gridbag, c); c.weighty = 0.0; c.gridwidth = GridBagConstraints.REMAINDER; c.gridheight = 1; makebutton("Button9", gridbag, c); makebutton("Button10", gridbag, c); setSize(300, 100); } Daniel Arndt Alves Gerenciadores de Layout 26
  • 27. Não há necessidade de se ficar vinculado exclusivamente às classes de gerenciamento vistas anteriormente. Classes que definem gerenciamento de layout implementam uma das seguintes interfaces: • LayoutManager : layout sem constraints • LayoutManager2: layout com constraints Daniel Arndt Alves Gerenciadores de Layout 27 Implementação de gerenciadores de Layout
  • 28. Eventos estão relacionados com a parte dinâmica de uma interface. Por exemplo, se houve um clique de mouse em cima de um botão da interface, diz-se que ocorreu um evento de mouse. O Java AWT implementa um mecanismo bastante robusto para gerenciamento de eventos. Daniel Arndt Alves Gerenciadores de Layout 28 Eventos
  • 29. Java AWT consegue gerenciar diretamente os seguintes tipos básicos de eventos: • eventos de mouse • eventos de teclado • eventos de ação • eventos de foco Daniel Arndt Alves Gerenciadores de Layout 29 Tipos de Eventos
  • 30. Modelo de gerenciamento de eventos em Java AWT A notificação de ocorrência e tratamento do evento é baseada em dois métodos da classe java.awt.Component: • deliverEvent() : despacha o evento para o componente • postEvent() : chama o método handleEvent() para verificar se o componente poderia tratar o evento. Daniel Arndt Alves Gerenciadores de Layout 30
  • 31. Container Componente Componente Container Componente Componente Componente Container Componente Componente Evento Daniel Arndt Alves Gerenciadores de Layout 31 Modelo de gerenciamento de eventos em Java AWT
  • 32. Modelo de gerenciamento de eventos em Java AWT Componente Container Componente Container Componente Componente Componente Container Componente Componente deliverEvent() deliverEvent() deliverEvent() deliverEvent() Daniel Arndt Alves Gerenciadores de Layout 32
  • 33. Componente Container Componente Container Componente Componente Componente Container Componente Componente postEvent() postEvent() * * ** postEvent() * if (handleEvent(Event) == false) super.postEvent() ** handleEvent(Event)== true) Daniel Arndt Alves Gerenciadores de Layout 33 Modelo de gerenciamento de eventos em Java AWT
  • 34. Tratamento de eventos Existem várias maneiras que um componente pode implementar seu tratamento para um determinado evento. O ponto importante é entender que o método handleEvent(Event) é o despachante de eventos central para um componente. Daniel Arndt Alves Gerenciadores de Layout 34
  • 35. Método handleEvent O método handleEvent é definido segundo o seguinte protótipo: public boolean handleEvent(Event evt); Event é uma classe do AWT que abstrai as características do evento e já vem instanciada na chamada do método. Daniel Arndt Alves Gerenciadores de Layout 35
  • 36. Classe Event A classe Event possui três atributos importantes no tratamento de eventos: • Object target : alvo do evento • int id : tipo do evento (constantes) • int key : código de tecla pressionada Daniel Arndt Alves Gerenciadores de Layout 36
  • 37. Atributo id A consulta ao atributo id geralmente é feita via constantes da classe Event: Event.MOUSE_ENTER Event.MOUSE_EXIT Event.MOUSE_MOVE Event.MOUSE_DOWN Event.MOUSE_DRAG Event.MOUSE_UP Event.MOUSE_UP Event.KEY_PRESS Event.KEY_ACTION Event.KEY_RELEASE Event.KEY_ACTION_RELEASE Event.ACTION_EVENT Event.GOT_FOCUS Event.LOST_FOCUS Daniel Arndt Alves Gerenciadores de Layout 37
  • 38. Método handleEvent O comportamento padrão do método handleEvent é determinar se ocorreu (na seguinte ordem) os eventos: 1. De mouse 2. De teclado 3. De ação (usuário quer que alguma ação ocorra) 4. De foco no componente 5. De perda de foco no componente e chamar o método de tratamento correspondente. Daniel Arndt Alves Gerenciadores de Layout 38
  • 39. Eventos de mouse Os eventos de mouse tratados pelo AWT são: • entrar com mouse num componente (id=Event.MOUSE_ENTER) • sair com mouse de um componente (id=Event.MOUSE_EXIT) • movimentar o mouse sobre um componente (id=Event.MOUSE_MOVE) Daniel Arndt Alves Gerenciadores de Layout 39
  • 40. Eventos de mouse • Apertar botão do mouse sobre um componente (id=Event.MOUSE_DOWN) • Arrastar mouse com botão pressionado sobre um componente (id = Event.MOUSE_DRAG) • soltar botão do mouse sobre um componente (id=Event.MOUSE_UP) Daniel Arndt Alves Gerenciadores de Layout 40
  • 41. Event.MOUSE_ENTER Pode ser tratado dentro do método: public boolean mouseEnter(Event evt, int x, int y) (x, y) : coordenadas de entrada Daniel Arndt Alves Gerenciadores de Layout 41
  • 42. Event.MOUSE_EXIT Pode ser tratado dentro do método: public boolean mouseExit(Event evt, int x, int y) (x, y) : coordenada de saída Daniel Arndt Alves Gerenciadores de Layout 42
  • 43. Event.MOUSE_MOVE Pode ser tratado dentro do método: public boolean mouseMove(Event evt, int x, int y) (x, y) : coordenada do movimento Daniel Arndt Alves Gerenciadores de Layout 43
  • 44. Event.MOUSE_DOWN Pode ser tratado dentro do método: public boolean mouseDown(Event evt, int x, int y) (x, y) : coordenada de pressionamento do botão Daniel Arndt Alves Gerenciadores de Layout 44
  • 45. Event.MOUSE_DRAG Pode ser tratado dentro do método: public boolean mouseDrag(Event evt, int x, int y) (x, y) : coordenada de arrasto Daniel Arndt Alves Gerenciadores de Layout 45
  • 46. Event.MOUSE_UP Pode ser tratado dentro do método: public boolean mouseUp(Event evt, int x, int y) (x, y) : coordenada onde botão foi solto Daniel Arndt Alves Gerenciadores de Layout 46
  • 47. Ainda dentro dos eventos de mouse, o método handleEvent faz a verificação na sequência: 1. MOUSE_ENTER 2. MOUSE_EXIT 3. MOUSE_MOVE 4. MOUSE_DOWN 5. MOUSE_DRAG 6. MOUSE_UP Daniel Arndt Alves Gerenciadores de Layout 47 Ordem de Verificação
  • 48. Exemplo // Botão com todos os tratamentos de evento import java.awt.*; public class botao extends Button{ botao(String rotulo){ // Construtor super(rotulo); } Daniel Arndt Alves Gerenciadores de Layout 48
  • 49. Exemplo public boolean mouseEnter(Event evt, int x, int y){ System.out.println("Entrou no componente"); return(true); } public boolean mouseExit(Event evt, int x, int y){ System.out.println("Saiu do componente"); return(true); } public boolean mouseMove(Event evt, int x, int y){ System.out.println("Movimento sobre botão"); return(true); } Daniel Arndt Alves Gerenciadores de Layout 49
  • 50. Exemplo public boolean mouseDown(Event evt,int x,int y){ System.out.println(“Clique no componente”); return(true); } public boolean mouseDrag(Event evt,int x,int y){ System.out.println(“Arrasto em cima do componente”); return(true); } public boolean mouseUp(Event evt,int x,int y){ System.out.println(“Soltou em cima do botão”); return(true); } } // Botão Daniel Arndt Alves Gerenciadores de Layout 50
  • 51. Eventos de teclado Dois tipos de evento podem ocorrer no teclado: • pressionar teclas – Event.KEY_PRESS : teclas ASCII – Event.KEY_ACTION : teclas não-ASCII • soltar teclas – Event.KEY_RELEASE : teclas ASCII – Event.KEY_ACTION_RELEASE: teclas não-ASCII Daniel Arndt Alves Gerenciadores de Layout 51
  • 52. Event.KEY_PRESS Event.KEY_ACTION Podem ser tratados dentro do método: public boolean keyDown(Event evt, int key) key : código da tecla pressionada Daniel Arndt Alves Gerenciadores de Layout 52
  • 53. Event.KEY_RELEASE Event.KEY_ACTION_RELEASE Podem ser tratados dentro do método: public boolean keyUp(Event evt, int key) key : código da tecla pressionada Daniel Arndt Alves Gerenciadores de Layout 53
  • 54. Ordem de Verificação Ainda dentro dos eventos de teclado, o método handleEvent faz a verificação na seqüência: 1. KEY_PRESS e KEY_ACTION 2. KEY_RELEASE e KEY_ACTION_RELEASE Daniel Arndt Alves Gerenciadores de Layout 54
  • 55. Exemplo // Botão com tratamento de teclado no botão import java.awt.*; public class botao extends Button{ botao(String rotulo){ // Construtor super(rotulo); } Daniel Arndt Alves Gerenciadores de Layout 55
  • 56. Exemplo public boolean keyDown(Event evt,int key){ if (key=='a') setLabel("Tecla a pressionada"); else if (key==Event.LEFT) setLabel("Seta esquerda pressionada"); else if (key==Event.RIGHT) setLabel("Seta direita pressionada"); return(true); } }// botao Daniel Arndt Alves Gerenciadores de Layout 56
  • 57. Eventos de ação Quando ocorre um evento de ação (Event.ACTION_EVENT), o tratamento pode ser colocado dentro do método: public boolean action(Event evt, Object arg) arg - depende do componente onde ocorreu a ação Daniel Arndt Alves Gerenciadores de Layout 57
  • 58. Argumento do evento de ação Componente arg Button Rótulo do botão Checkbox Estado do checkbox Choice Opção escolhida List Opção escolhida com duplo clique TextField Conteúdo após return pressionado Daniel Arndt Alves Gerenciadores de Layout 58
  • 59. Exemplo public boolean action(Event evt,Object arg){ // Verifica se foi ação no botão if (evt.target instanceof Button) // Mostra rótulo do botão em maiúsculas System.out.println(((String) arg).toUpperCase()); return(true); } Daniel Arndt Alves Gerenciadores de Layout 59
  • 60. Evento de ganho de foco Quando ocorre um evento de ganho de foco (Event.GOT_FOCUS), o tratamento pode ser colocado dentro do método: public boolean gotFocus(Event evt, Object arg) arg - depende do componente onde ocorreu a ação Daniel Arndt Alves Gerenciadores de Layout 60
  • 61. Evento de perda de foco Quando ocorre um evento de perda de foco (Event.LOST_FOCUS), o tratamento pode ser colocado dentro do método: public boolean lostFocus(Event evt, Object arg) arg - depende do componente onde ocorreu a ação Daniel Arndt Alves Gerenciadores de Layout 61
  • 62. Outros Eventos Alguns eventos, porém, não possuem uma rota de tratamento bem definida como nos eventos anteriores. Neste caso, uma solução bem simples é alterar a implementação do método handleEvent para direcionar o tratamento de tais eventos. Daniel Arndt Alves Gerenciadores de Layout 62
  • 63. Exemplo 1 Tratamento de barras de rolagem import java.awt.*; class exemplo extends Frame{ Scrollbar barra=new Scrollbar(); ... public boolean handleEvent(Event evt){ if (evt.target==barra) barra.setValue(((Integer) evt.arg).intValue()); return(true); } } Daniel Arndt Alves Gerenciadores de Layout 63
  • 64. Exemplo 2 Tratamento de fechamento da janela principal import java.awt.*; class exemplo extends Frame{ Scrollbar barra=new Scrollbar(); ... public boolean handleEvent(Event evt){ if (evt.id==Event.WINDOW_DESTROY) System.exit(0); return(true); } } Daniel Arndt Alves Gerenciadores de Layout 64
  • 65. Tratamento mais complexo de eventos Para um tratamento mais complexo de eventos podem ser implementados métodos de várias interfaces de eventos do pacote java.awt.Event. Por exemplo: • MouseListener • ActionListener • WindowListener Daniel Arndt Alves Gerenciadores de Layout 65
  • 66. Daniel Arndt Alves Gerenciadores de Layout 66
  • 67. Daniel Arndt Alves Gerenciadores de Layout 67