Módulo 13 - Gestão de Componentes
Curso Profissional de Técnico de Informática de Gestão
2009/2010
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
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
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
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
Onde se encontram as classes Swing?
import javax.swing.*
 As classes Swing são encontradas no
pacote javax.swing
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
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
Gerenciadores de Layout
 Propriedade que determina como serão
organizados os componentes no ecrã
 Principais gerenciadores:
 FlowLayout
 GridLayout
 BorderLayout
 CardLayout
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)
11
FlowLayout - Exemplo
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)
13
GridLayout - Exemplo
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)
15
BorderLayout - Exemplo
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)
17
CardLayout - Exemplo
18
CardLayout – Exemplo (cont.)
19
Para saber mais layouts…
http://java.sun.com/docs/books/tutor
ial/uiswing/layout/visual.html
20
Alguns componentes Swing
 JButton
 JOptionPane
 JLabel
 JTextField
 JComboBox
 JCheckBox
 JRadioButton
 JMenuBar
 JPopupMenu
 JToolBarJTabbedPane
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
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
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
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.
25
Vamos praticar…

Java - Gestão de componentes curso profissional

  • 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ãocomponentes?  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ãoaplicaçõ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 Interfacegrá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 JavaSwing?  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 encontramas 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 notí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 maissimples  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)
  • 11.
  • 12.
    12 GridLayout  Divide ajanela 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)
  • 13.
  • 14.
    14 BorderLayout  Divide ajanela 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)
  • 15.
  • 16.
    16 CardLayout  Permite agruparvá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)
  • 17.
  • 18.
  • 19.
    19 Para saber maislayouts… http://java.sun.com/docs/books/tutor ial/uiswing/layout/visual.html
  • 20.
    20 Alguns componentes Swing JButton  JOptionPane  JLabel  JTextField  JComboBox  JCheckBox  JRadioButton  JMenuBar  JPopupMenu  JToolBarJTabbedPane
  • 21.
    21 Eventos  Alguns objectosda 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.)  Nalinha 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.)  Paradefinir 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.)  Eventosmais 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.
  • 25.