Post on 16-Apr-2015
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
COMPONENTES GUI – PARTE I
Prof. Thiago Pereira Rique
thiagorique2011@gmail.com
http://thiagorique.wordpress.com/
AGENDA
Introdução A nova interface Nimbus do Java Look and feel padrão Metal do Java Entrada/saída baseada em GUI simples com
JOptionPane Visão geral de componentes Swing Exibição de texto e imagens em uma janela Campos de texto e uma introdução ao
tratamento de evento com classes aninhadas
INTRODUÇÃO
Interface gráfica de usuário (Graphical User Interface – GUI) Aparência Comportamento
Componentes GUI (controles ou widgets (abreviação de window gadgets)) Objetos com os quais o usuário interage via
mouse, teclado ou outros mecanismos.
A NOVA INTERFACE NIMBUS DO JAVA
Atualização 10 do Java SE 6 Há 3 modos de utilizar o Nimbus:
Configurá-lo como padrão para todos os aplicativos Java no computador
Configurá-lo como a interface no momento em que se carrega um aplicativo (linha de comando)
Configurá-lo como a interface diretamente no aplicativo (programaticamente)
A NOVA INTERFACE NIMBUS DO JAVA
A NOVA INTERFACE NIMBUS DO JAVA
A NOVA INTERFACE NIMBUS DO JAVA
Outro exemplo: http://docs.oracle.com/javase/tutorial/uiswing/loo
kandfeel/nimbus.html
LOOK AND FEEL PADRÃO METAL DO JAVA
Default look and feel - Metal
LOOK AND FEEL PADRÃO METAL DO JAVA
Default look and feel - Metal
ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE
ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE
Diálogos de entrada
Diálogos de mensagem
ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE
Constantes de diálogo de mensagem JOptionPane
VISÃO GERAL DE COMPONENTES SWING
JLabel Exibe texto não editável ou ícones.
JTextField Permite ao usuário inserir dados do teclado.
Também pode ser utilizado para exibir texto editável ou não editável.
JButton Desencadeia um evento quando o usuário clicar
nele com o mouse. JCheckBox
Especifica uma opção que pode ser ou não selecionada.
VISÃO GERAL DE COMPONENTES SWING
JComboBox Fornece uma lista drop-down de itens a partir da
qual o usuário pode fazer uma seleção clicando em um item ou possivelmente digitando na caixa.
JPanel Fornece uma área em que os componentes
podem ser colocados e organizados. Também pode ser utilizado como uma área de desenho para imagens gráficas.
VISÃO GERAL DE COMPONENTES SWING
Swing versus AWT (Abstract Window Toolkit)
Superclasses de componentes GUI leves (independentes de plataforma) do Swing
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
Janelas Instâncias da classe JFrame ou subclasses de
JFrame. JFrame: subclasse indireta da classe
java.awt.Window. Para nossos exemplos:
Classe responsável pela construção da GUI (subclasse de JFrame).
Classe que cria e exibe a janela principal do aplicativo (main).
Rotulando componentes GUI JLabel
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
Saída do aplicativo
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
Especificando o layout Gerenciadores de layout (FlowLayout)
Componentes da esquerda para a direita. Método setLayout herdado indiretamente da
classe Container Argumento: objeto de uma classe que implemente a
interface LayoutManager.
Criando e anexando label1 “Label com texto” para o construtor da classe
JLabel setToolTipText add(label1);
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
Criando e anexando label2 Um ícone é especificado como um argumento Icon
para um construtor ou para o método setIcon do componente.
Icon Objeto de uma classe que implementa a interface Icon
(javax.swing). ImageIcon (javax.swing)
.gif, .png, .jpg (ou .jpeg) getClass().getResource(“Login_icon.png”)
Criando e anexando label3 setText, getText setIcon, getIcon setHorizontalTextPosition, setVerticalTextPosition
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
Criando e exibindo uma janela LabelFrame Operação de fechamento padrão da janela
setDefaultCloseOperation JFrame.EXIT_ON_CLOSE
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
As GUIs são baseadas em eventos Clicar um botão, digitar em um campo de texto,
etc. Handler de evento
Código que realiza uma tarefa em resposta a um evento
Tratamento de eventos Processo total de responder a eventos
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Passos necessários para configurar o tratamento de evento de um componente GUI
1. Crie uma classe que represente o handler de evento.
2. Implemente uma interface apropriada (interface ouvinte de eventos) na classe do passo 1.
3. Indique que um objeto da classe dos passos 1 e 2 deve ser notificado quando o evento ocorrer (registrar handler de evento).
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Utilizando uma classe aninhada para implementar um handler de evento Classes de primeiro nível Classes aninhadas (static ou não static)
Não static: classes internas (handlers de eventos) “Cada evento é representado por uma classe e
pode ser processado apenas pelo tipo de handler de evento apropriado”
Enter em um JTextField ActionEvent (java.awt.event) ActionListener (java.awt.event)
actionPerformed
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
Registrando o handler de evento para cada campo de texto textField.addActionListener(handler);
Detalhes do método actionPerformed da classe TextFieldHandler Origem do evento Método getSource
if (event.getSource() == textField1) Método getActionCommand
REFERÊNCIA
DEITEL, H.M; Java Como Programar. Ed. Pearson, 8ª ed, 2010.