Interface grafica
LEEC@IST
Swing – 1/68
Introdução (1)
• O Java disponibiliza um conjunto de pacotes para geração de unidades de interface gráfica (GUI).
– AWT (Abstract Window Toolkit)
• • • • • • pacote java.awt (import java.awt.*;) disponibilizado no JSE 1.1 dependente de código nativo pacote javax.swing (import javax.swing.*;) disponibilizado no JSE 1.2 expande o AWT (17 pacotes na versão 1.4)
– Swing
LEEC@IST
Swing – 2/68
Introdução (2)
• O Swing possui componentes, que seguem a arquitectura MVC:
– Modelo Espaço de dados do componente (ex: barra de elevador possui 3 posições-mínimo, médio e máximo). – Apresentação (view) Forma de visualização do componente (ex: janela Windows, com botão de fecho no canto superior direito). – Controlador Forma como o componente interage com eventos (ex: clicar no rato).
LEEC@IST
Componente
Modelo Controlador Apresentação
Delegação UI
Swing – 3/68
Introdução (3)
• Componentes do Swing*
– JComponent
• JPanel • JButton • …
– JFrame – JDialog – JApplet Tudo o que surge na janela faz parte de uma hierarquia de um (ou mais) contentores de inclusão de instâncias de JFrame, JDialog ou JApplet. Nota: componentes do AWT possuem mesmo identificador, sem prefixo J!
LEEC@IST Swing – 4/68
Introdução (4)
Component
Button LayoutManager
Container
Panel
Window
JComponent
Applet
Frame
Dialog
AbstractButton
JTextComponent
JPanel JApplet JFrame JButton
LEEC@IST
JTextField
Swing – 5/68
Componentes Swing: contentores de topo
JDialog As caixas de dialogo são normalmente mais simples. Existem várias predefinidas em “JOptionPane”. Estas são normalmente Modal. O thread corrente fica suspenso a espera da resposta do utilizador.
LEEC@IST
JFrame JFrame corresponde a uma janela normal com uma frame (o contorno da janela que permite o dimensionamento e reposicionamento).
Swing – 6/68
Componentes Swing: contentores intermédios