1. Módulo 13 - Gestão de Componentes
Curso Profissional de Técnico de Informática de Gestão
2009/2010
2. 2
O que são componentes?
Um componente pode ser:
um bloco de código, uma função, um objecto ou
uma aplicação ao qual foi adicionado lógica para
implementar um interface
Peça de Software que implementa uma determinada
funcionalidade (interface) e que pode ser configurada
(alterando as propriedades) em função do contexto
onde é utilizada
3. 3
O que são aplicações gráficas?
São aplicações que:
possibilitam a criação de uma GUI(Graphical
User Interface)
Onde definimos componentes
Indicamos a disposição dos componentes no
ecrã
Permitem a interacção com o utilizador por
meio dos periféricos de entrada (teclado, rato)
4. 4
Componentes da Interface gráfica em Java
O java possui duas bibliotecas gráficas
AWT (Abstract Window Toolkit)
Swing
AWT foi a primeira a ser criada
Swing veio substituir o AWT
Neste módulo vamos trabalhar com Java Swing
5. 5
Porquê usar Java Swing?
Melhor aparência
Melhor tratamento de eventos
Todas as classes deste pacote são extensões dos
pacotes AWT
Com o Swing conseguimos que a aplicação tenha
a mesma aparência e comportamento
independentemente do sistema operativo
6. 6
Onde se encontram as classes Swing?
import javax.swing.*
As classes Swing são encontradas no
pacote javax.swing
7. 7
Containers
Uma GUI (Interface gráfica do Utilizador)
é construída a partir de componentes
chamados containers.
São os containers que contém outros
componentes
JFrame e JPanel são os containers
mais utilizados
8. 8
Exemplo
Texto que aparece
no título da janela
Dimensões da
janela
Posição do ecrã
onde a janela
será desenhada
Comportamento
que deve a
aplicação ter ao
fechar a janela.
9. 9
Gerenciadores de Layout
Propriedade que determina como serão
organizados os componentes no ecrã
Principais gerenciadores:
FlowLayout
GridLayout
BorderLayout
CardLayout
10. 10
FlowLayout
Gerenciador mais simples
Componentes dispostos da esquerda para a
direita pela ordem que foram adicionados
Quando o a largura dos componentes excede a
largura da janela, é criada uma nova linha
(assemelha-se a um editor de texto)
Sintaxe:
FlowLayout(alinhamento, espaçamento-horizontal, espaçamento-vertical)
12. 12
GridLayout
Divide a janela num conjunto de células em forma de
grelha rectangular.
Todas as células tem a mesma dimensão
Componentes dispostos pela ordem de adição sendo
inseridos na grelha da esquerda para a direita e de cima
para baixo
Número de linhas e colunas é definido consoante as
necessidades
Sintaxe:
GridLayout(linhas, colunas, espaçamento-horizontal, espaçamento-vertical)
14. 14
BorderLayout
Divide a janela em 5 regiões distintas
north – região superior
south – região inferior
west – lado esquerda
east – lado direito
center – centro
A ordem pela qual os componentes são adicionados é
irrelevante
No momento da adição indicamos em que região fica o
componente
Sintaxe:
BorderLayout(espaçamento-horizontal, espaçamento-vertical)
16. 16
CardLayout
Permite agrupar vários containers em forma de
cartões mostrando um de cada vez
Apenas um container está visível
Cada container tem um gerenciador de layout
especifico
Sintaxe:
CardLayout()
nome-do-cardlayout.show(nome-do-conteiner, identificador)
21. 21
Eventos
Alguns objectos da GUI podem:
gerar eventos (ex: botão que pode ser
clicado)
Mantém uma lista de ouvintes – interessados
em ser notificados de que o evento foi
accionado
Quando evento é accionado:
Ouvinte examina o parâmetro recebido e, a
partir daí, executa as suas próprias acções.
22. 22
Eventos (cont.)
Na linha de código addActionListener(this) o painel é
registado como ouvinte dos eventos do botão
Para que seja possível colocar o painel à escuta, a classe que
o implementa deve implementar
java.awt.event.ActionListener
public class ExemploFlowLayout implements ActionListener {
…
JButton botao = new JButton("OK");
…
painel.add(botao);
botao.addActionListener(this);
…
23. 23
Eventos (cont.)
Para definir as acções a executar quando o evento
é gerado temos de implementar o método
actionPerformed.
getSource() – retorna o componente accionado
//Método exigido pela interface
public void actionPerformed(ActionEvent e){
if (e.getSource() == botao){
JOptionPane.showMessageDialog(null, texto.getText());
}
}
24. 24
Eventos (cont.)
Eventos mais utilizados:
ActionListener – “apanha” os eventos de acção, como o
clique num botão do rato, pressionar “Enter” numa caixa
de texto, etc.
FocusListener – “apanha” os eventos de foco, gerados
quando um componente recebe ou perde o focus.
MouseListener – “apanha” os eventos gerados quando
uma tecla do rato é clicada, quando o rato entra em
determinada área do componente, etc.
WindowListener – eventos associados à janela, gerados
quando a janela é maximizada, minimizada, etc.