SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesAlvaro Oliveira
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array ListArthur Emanuel
 
Java design patterns
Java design patternsJava design patterns
Java design patternsShawn Brito
 
Effective Java - Enum and Annotations
Effective Java - Enum and AnnotationsEffective Java - Enum and Annotations
Effective Java - Enum and AnnotationsRoshan Deniyage
 
C# Exceptions Handling
C# Exceptions Handling C# Exceptions Handling
C# Exceptions Handling sharqiyem
 
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
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptFábio Flatschart
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterMarcos Castro
 
Java Collections
Java CollectionsJava Collections
Java Collectionsparag
 
Arquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaArquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaWilson Júnior
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 

Was ist angesagt? (20)

Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Java design patterns
Java design patternsJava design patterns
Java design patterns
 
Unit Testing in Swift
Unit Testing in SwiftUnit Testing in Swift
Unit Testing in Swift
 
Java exception handling
Java exception handlingJava exception handling
Java exception handling
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Effective Java - Enum and Annotations
Effective Java - Enum and AnnotationsEffective Java - Enum and Annotations
Effective Java - Enum and Annotations
 
C# Exceptions Handling
C# Exceptions Handling C# Exceptions Handling
C# Exceptions Handling
 
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)
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScript
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com Tkinter
 
Java collection
Java collectionJava collection
Java collection
 
Java Collections
Java CollectionsJava Collections
Java Collections
 
Oracle APEX Nitro
Oracle APEX NitroOracle APEX Nitro
Oracle APEX Nitro
 
Arquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em JavaArquivos, Fluxos e Serialização de Objetos em Java
Arquivos, Fluxos e Serialização de Objetos em Java
 
Awt
AwtAwt
Awt
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Java Collections Tutorials
Java Collections TutorialsJava Collections Tutorials
Java Collections Tutorials
 

Andere mochten auch

Andere mochten auch (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
 
Java AWT
Java AWTJava AWT
Java AWT
 
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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaFernanda Ledesma
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyasminlarissa371
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?MrciaRocha48
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAlexandreFrana33
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdfHABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdfdio7ff
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileirosMary Alvarenga
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOBiatrizGomes1
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdfDemetrio Ccesa Rayme
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfpaulafernandes540558
 

Kürzlich hochgeladen (20)

Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão Linguística
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?
 
As Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptxAs Viagens Missionária do Apostolo Paulo.pptx
As Viagens Missionária do Apostolo Paulo.pptx
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdfHABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdf
 

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