Buscar

Aula 4 - Java - Interface Gráfica

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Java – interface gráfica
Linguagem de Programação Visual
Prof. Thiago Meirelles Ventura
UFMT – IC – 2013/2
Agenda
Fundamentos
Biblioteca Swing
Netbeans
Componentes Swing
Layout
Eventos
Fundamentos
Interface gráfica é composta por:
Componentes
Containers
Layout
Eventos
Fundamentos
AWT – Abstract Window Toolkit
conjunto de ferramentas para interfaces gráficas no Java
infraestrutura mínima para a interface gráfica
Fundamentos
AWT – Abstract Window Toolkit
conjunto de ferramentas para interfaces gráficas no Java
infraestrutura mínima para a interface gráfica
Swing
conjunto mais rico de componentes para interface gráfica
não é um substituto do AWT
Fundamentos
Fundamentos
Classe java.awt.Component
Existe um Component por trás de tudo que pode ser renderizado na tela
Alguns métodos:
paint(java.awt.Graphics g)
repaint()
update(java.awt.Graphics g)
setSize(int, int)
setLocation(int x, int y)
setEnable(boolean enabled)
Biblioteca Swing
Classe javax.swing.JComponent
Fornece recurso de alto nível a todos os componentes swing.
Alguns recursos básicos:
Configurar tamanho preferencial
Suporte a acessibilidade e internacionalização
Tooltips
Bordas
Biblioteca Swing
Netbeans
Netbeans
Abrir Netbeans
Conhecer a IDE
Iniciar um novo projeto
Componentes Swing
Janela
Pode ser movimentada independente de qualquer outra janela
javax.swing.JFrame
Componentes Swing
Janela
Pode ser movimentada independente de qualquer outra janela
javax.swing.JFrame
import javax.swing.JFrame;
[...]
JFrame janela = new JFrame("Primeira janela");
janela.setSize(300, 200);
janela.setVisible(true);
Componentes Swing
JPanel
JLabel
JTextField
JPasswordField
JButton
JCheckBox
JRadioButton
JComboBox
JList
JToolTip
Layout
Organizam os componentes da interface.
Podem posicionar automaticamente os componentes, se adaptando ao tamanho dos containers.
Gerenciador de Layout
política de layout
tamanho preferencial
Layout
Gerenciador de Layout
FlowLayout
BorderLayout
GridLayout
BoxLayout
GridBagLayout
...
Layout
Gerenciador de Layout
FlowLayout
BorderLayout
GridLayout
BoxLayout
GridBagLayout
...
Layout
Gerenciador de Layout
FlowLayout
BorderLayout
GridLayout
BoxLayout
GridBagLayout
...
Layout
Gerenciador de Layout
FlowLayout
BorderLayout
GridLayout
BoxLayout
GridBagLayout
...
Layout
Gerenciador de Layout
FlowLayout
BorderLayout
GridLayout
BoxLayout
GridBagLayout
...
Layout
Gerenciador de Layout
Definindo um layout
import java.awt.FlowLayout;
[...]
container.setLayout(new FlowLayout());
Layout
Gerenciador de Layout
Definindo um layout
import java.awt.FlowLayout;
[...]
FlowLayout layout = new FlowLayout();
layout.setAlignment( FlowLayout.RIGHT );
container.setLayout( layout );
Eventos
Modo para responder às ações que ocorrem na interface.
movimento do mouse, pressionar botões, entrada de dados em uma caixa de texto, ...
Tratamento de eventos
Para cada evento, existe um listener.
Evento
Listener
ItemEvent
ItemListener
TextEvent
TextListener
WindowEvent
WindowListener
KeyEvent
KeyListener
...Event
...Listener
Eventos
Tratamento de eventos
I N T E R F A C E
eventos
Eventos
Tratamento de eventos
I N T E R F A C E
Receptor
addActionListener(actionListener);
eventos
Eventos
Tratamento de eventos
I N T E R F A C E
Receptor
addKeyListener(keyListener);
Receptor
eventos
Eventos
Tratamento de eventos
I N T E R F A C E
Receptor
Receptor
Receptor
addTextListener(textListener);
eventos
Eventos
Tratamento de eventos
I N T E R F A C E
Receptor
eventos
Receptor
removeTextListener(textListener);
Eventos
Tratamento de eventos
O que deve ser feito:
Registrar um listener para cada evento que se deseja tratar.
Implementar os métodos que manipulam o evento.
Eventos
Alguns eventos
ActionEvent
Componentes de ação, como Jbutton e o JTextField
MouseEvent
Componentes afetados pelo mouse
ItemEvent
Componentes de seleção, como o JCheckBox e JRadionButton
TextEvent
Componentes de texto
WindowEvent
Janelas
KeyEvent
Componentes afetados pelo teclado
Exercício
Crie uma janela com os seguintes componentes:
O texto informado na caixa de texto superior deve ser inserido em uma das caixas de textos numeradas (1 ou 2).
Se a caixa de seleção estiver selecionada, o texto irá para 1. Caso contrário, o texto irá para 2.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais