tic - programação visual .pdf · tic - programação visual unidade 14 – componentes 10 alguns...

71
TIC - Programação Visual Unidade 14 – Componentes 1 Prof. Edwar Saliba Júnior Setembro de 2012 Componentes

Upload: others

Post on 11-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 1

Prof. Edwar Saliba JúniorSetembro de 2012

Componentes

Page 2: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 2

Reflexão

“Merecemos a culpa por não termos facilitado o seu aprendizado. No tocante aos recursos, o produto era fantástico, mas no que se refere à facilidade dos primeiros passos, não nos saímos muito bem.”

(Bill Gates sobre a frustração parcial de alguns usuários com o Word 2.0)

Page 3: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 3

Dica

Interfaces consistentes permitem que o usuário aprenda mais rápido e com mais facilidade novos aplicativos.

Page 4: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 4

Entrada/saída baseada em GUI simples com JOptionPane

• Caixas de diálogo:– Utilizadas pelas aplicações para interagir

com o usuário;

– Fornecidas pela classe JOptionPane (pacote javax.swing):

• Contém diálogos de entrada e diálogos de mensagem.

– Sintaxe:JOptionPane.showMessageDialog(...);

JOptionPane.showInputDialog(...);

Page 5: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 5

Constantes JOptionPane static para diálogos de mensagem.

Tipo de diálogo de mensagem Ícone Descrição

ERROR_MESSAGE

Um diálogo que indica um erro para o usuário.

INFORMATION_MESSAGE

Um diálogo com uma mensagem informativa para o usuário.

WARNING_MESSAGE

Um diálogo que adverte o usuário de um problema potencial.

QUESTION_MESSAGE

Um diálogo que impõe uma pergunta ao usuário. Normalmente, esse diálogo exige uma resposta, como clicar em um botão Yes ou No.

PLAIN_MESSAGE Nenhum ícone

Um diálogo que contém uma mensagem, mas nenhum ícone..

Page 6: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 6

Exercício 01 - JOptionPaneDiálogo de entrada exibido nas linhas 14 e 15

Diálogo de entrada exibido na linha 16 e 17

Diálogo de entrada exibido nas linhas 22–23

Campo de texto em que

o usuário digita umvalor

Prompt para o usuário

Quando o usuárioclica em OK,

showInputDialog retorna ao programa o

123 digitado pelo usuário como uma

String. O programa deve converter a

String em um float

barra de título

Quando o usuário clicar em OK, o diálogo de

mensagem é fechado (é removido da tela)

Page 7: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 7

Exemplo 01 - JOptionPane

Mostra o diálogo de entrada para

receber o primeiro valor

Mostra o diálogo de entrada para

receber o segundo valor

Mostra o diálogo de mensagem para gerar a saída da soma para o

usuário

Page 8: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 8

Observação sobre Aparência e Comportamento

Em geral, a barra de título de uma janela adota o uso de letras maiúsculas e minúsculas — um estilo que emprega a inicial maiúscula em cada palavra significativa no texto e não termina com pontuação;

• Exemplo: Título de um Livro ou de um Slide.

Page 9: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 9

Visão Geral de Componentes Swing

• Componentes Swing GUI:– Declarado no pacote javax.swing;

– A maioria dos componentes Swing são componentes Java puros — escritos, manipulados e exibidos em Java;

– Fazem parte das bibliotecas do Java (Java Foundation Classes (JFC)) para desenvolvimento de GUI para múltiplas plataformas.

Page 10: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 10

Alguns Componentes Básicos Componente Descrição

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.

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.

JList Fornece uma lista de itens a partir da qual o usuário pode fazer uma seleção clicando em qualquer item na lista. Múltiplos elementos podem ser selecionados.

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.

Page 11: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 11

Swing versus AWT

• Abstract Window Toolkit (AWT):– Precursor do Swing;

– Declarado no pacote java.awt;

– Não fornece aparência e comportamento consistentes para diversas plataformas.

Page 12: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 12

Dica de Portabilidade

Os componentes Swing são implementados com Java; desse modo, eles são mais portáveis e flexíveis do que os componentes Java do pacote java.awt.

Page 13: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 13

Componentes Leves X Pesados

• Componentes leves:– Não associados diretamente a

componentes GUI suportados pela plataforma subjacente;

• Componentes pesados:– Associados diretamente à plataforma

local;

– Componentes AWT;

– Alguns componentes Swing.

Page 14: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 14

Observação sobre Aparência e Comportamento

• Componentes Pesados:

– a aparência e o comportamento de uma interface definida com componentes GUI do pacote java.awt, podem variar entre plataformas (S.O.);

– são acoplados à GUI da plataforma local, assim sendo, sua aparência e comportamento variam entre plataformas.

Page 15: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 15

Superclasses Comuns de Muitos dos Componentes do Swing

Page 16: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 16

Superclasses de Componentes GUI Leves do Swing

• Classe Component (pacote java.awt):– Subclasse de Object;

– Declara muitos comportamentos e atributos comuns a componentes GUI.

• Classe Container (pacote java.awt):– Subclasse de Component;

– Organiza Componentes.

• Classe JComponent (pacote javax.swing):– Subclasse de Container;

– Superclasse de todos os componentes Swing leves.

Page 17: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 17

Superclasses de Componentes GUI Leves do Swing

• Recursos dos componentes leves comuns:– Aparência e comportamento adaptáveis para

personalizar a aparência dos componentes;

– Teclas de atalho (chamadas mnemônicas);

– Capacidades comuns de tratamento de eventos;

– Breves descrições do propósito de um componente GUI (dicas de ferramenta);

– Suporte para localização de interface com o usuário.

Page 18: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 18

Componentes Visuais

Page 19: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 19

JFrame

• Usado para exibição de texto e imagens em uma janela;

• Classe JFrame:– A maioria das janelas é uma instância ou

subclasse dessa classe;

– Fornece a barra de título;

– Fornece botões para minimizar, maximizar e fechar a aplicação.

Page 20: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 20

Métodos Importantes

• JFrame:– setDefaultCloseOperation

• Determina como a aplicação reage quando o usuário clica no botão fechar.

– setSize• Especifica a largura e altura da janela.

– setVisible• Determina se a janela é exibida (true) ou não

(false).

Page 21: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 21

Métodos Importantes Comuns a Maioria dos Componentes Visuais

• setToolTipText

– Quando preenchido, apresenta um dica ao usuário do software, quando este para o mouse sobre o componente;

• setEnabled

– Habilita ou desabilita um componente;• setFocusable

– Habilita ou desabilita a possibilidade de um componente receber foco;

• setNextFocusableComponent

– Desvia a sequência de foco entre os componentes habilitados a recebê-lo.

Page 22: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 22

JLabel

• Rótulo;• Classe JLabel:

– Instruções de texto ou informações que declaram o propósito de cada componente;

– Muito utilizado também em campos que têm o objetivo único de visualização de dados.

Page 23: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 23

Métodos Importantes

• JLabel:– getText e setText

• Para colocar e recuperar o texto de um rótulo.

– getIcon e setIcon• Para colocar e recuperar o ícone exibido no rótulo.

– getHorizontalTextPosition e setHorizontalTextPosition

• Para configurar e recuperar a posição horizontal do texto exibido no rótulo.

– setDisplayedMnemonic e setLabelFor • Estes métodos funcionam em conjunto. O primeiro configura um

atalho no texto apresentado no JLabel e o segundo é o método que aponta para o componente que deverá receber o foco.

Page 24: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 24

Observação sobre Aparência e Comportamento

• Normalmente, o texto em um JLabel emprega maiúsculas e minúsculas no estilo de frases, sendo muito comum o uso de “:” no final.

Page 25: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 25

Especificando o Layout

• Organização dos contêineres:– Determina onde os componentes são

colocados no contêiner;

– Feita no Java com gerenciadores de layout:

• Exemplo: classe FlowLayout.

– Configura-se o layout de uma janela com o método setLayout da classe JFrame.

Page 26: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 26

Ícones• Interface Icon:

– Pode ser adicionado a uma JLabel com o método setIcon.

– Implementado pela classe ImageIcon.

Page 27: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 27

Constantes

• Interface SwingConstants:

– Declara um conjunto de constantes inteiras comuns, como as utilizadas para configurar o alinhamento dos componentes;

– Pode ser utilizada com os métodos:setHorizontalAlignment esetVerticalAlignment.

Page 28: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 28

Algumas Constantes

Page 29: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 29

Exercício 02 - JLabel

• Desenvolva um software utilizando apenas:– um componente JFrame,– três componentes JLabel e– uma imagem.

• Seu software deverá produzir a seguinte saída:

Page 30: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 30

Exemplo 02 - JLabel

Parte 01 - Classe Main.

Parte 02 - Classe LabelFrame.

Page 31: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 31

Erro Comum de Programação

Se você não adicionar explicitamente um componente GUI a um contêiner, o componente não será exibido quando o contêiner aparecer na tela.

Page 32: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 32

Dica

Utilize as dicas de ferramenta (método: setToolTipText) para adicionar texto descritivo aos componentes GUI. Esse texto ajuda o usuário a determinar o propósito do componente na interface.

Page 33: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 33

Evento

• Normalmente um usuário interage com uma GUI do aplicativo para indicar a tarefa que o software deve realizar;

• Exemplo:– Escrever uma mensagem num aplicativo de

correio eletrônico. O ato de clicar no botão “Enviar” instrui o software a enviar a mensagem escrita para os endereços especificados no e-mail.

Page 34: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 34

GUI's X Eventos

• GUI's são fundamentadas em eventos;• Quando um usuário interage com um

componente GUI, essa interação é conhecida como evento;

• Um evento geralmente guia o programa na realização de uma tarefa.

Page 35: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 35

Eventos Comuns

• Eventos comuns nos componentes GUI:– clicar em um botão,– digitar em um campo de texto,– selecionar um item de menu,– fechar uma janela e– mover um mouse.

• O código que realiza uma tarefa em resposta a um evento é chamado de: handler de evento.

Page 36: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 36

Campos de Texto

• GUI's são baseadas em eventos:– Uma interação com o usuário dispara um

evento:• Eventos comuns são: clicar em um botão, digitar

em um campo de texto, selecionar um item em um menu, fechar uma janela e mover o mouse.

– O evento causa uma chamada a um método que chamou um handler de evento.

Page 37: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 37

Campos de Texto

• Classe JTextComponent:– Superclasse de JTextField:

• Superclasse de JPasswordField:

– Adiciona o caractere de eco para ocultar a entrada de texto no componente.

– Permite que o usuário insira texto no componente quando o componente tem o foco da aplicação.

Page 38: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 38

Configuração de um Evento

• Vários passos de codificação são requeridos para que uma aplicação responda a eventos:– Criar uma classe para o handler de

evento;

– Implementar uma interface ouvinte de evento apropriada;

– Registrar o handler de evento.

Page 39: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 39

Implementando um Handler de Evento

• Classe de primeiro nível:– Não declarada dentro de uma outra

classe.

• Classes aninhadas:– Declaradas dentro de uma outra classe;

– Classes aninhadas não-static são chamadas classes internas;

• Frequentemente utilizadas para tratamento de eventos.

Page 40: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 40

Observação

Uma classe interna tem permissão de acessar diretamente variáveis e métodos de sua classe de primeiro nível, mesmo se eles forem private.

Page 41: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 41

JTextField e JPasswordField

•JTextField e JPasswordField:– Pressionar Enter dentro de um desses

campos dispara um ActionEvent.• Processado pelos objetos que implementam a

interface ActionListener.

Page 42: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 42

Registrando o Handler de Evento

• Registrando um handler de evento:– Chamar o método addActionListener

para registrar um objeto ActionListener;

– ActionListener “ouve” eventos no objeto.

Page 43: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 43

Observação

O ouvinte de evento para um evento deve implementar a interface apropriada para o evento.

Page 44: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 44

Erro Comum de Programação

Esquecer de registrar um objeto tratador de eventos para um tipo de evento de um componente GUI particular, faz com que o tipo seja ignorado.

Page 45: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 45

actionPerformed

• Fonte do evento:– Componente a partir do qual o evento se

origina;

– Pode ser determinado utilizando o método getSource;

– O texto em um JTextField pode ser adquirido utilizando getActionCommand;

– O texto em um JPasswordField pode ser adquirido utilizando getPassword.

Page 46: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 46

Tipos Comuns de Eventos

• Tipos de eventos:– Todos são subclasses de AWTEvent;

– Alguns declarados no pacote java.awt.event;

– Aqueles específicos a componentes Swing declarados no javax.swing.event.

Page 47: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 47

Evolução do Evento Internamente

• Modelo de evento de delegação:– A origem do evento é o componente com

o qual o usuário interage;

– O objeto do evento é criado e contém as informações sobre o evento que aconteceu;

– O objeto ouvinte de eventos é notificado quando um evento acontece (Design Pattern - Observer).

Page 48: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 48

Classes de evento do pacote java.awt.event

Page 49: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 49

Interfaces Ouvintes de Eventos do Pacote java.awt.event

Page 50: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 50

Como o Tratamento de Evento Funciona?

• Perguntas remanescentes:– Como o handler de evento ficou

registrado?

– Como o componente GUI sabe chamar actionPerformed em vez de algum outro método de tratamento de evento?

Page 51: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 51

Resposta

• Cada JComponent tem uma variável de instância listenerList:– Objeto do tipo EventListenerList.

– Mantém referências a todos os seus ouvintes registrados.

Page 52: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 52

Exemplo de Registro de Evento

Page 53: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 53

Invocação de Handler de Evento

• Eventos são despachados somente aos ouvintes dos eventos que correspondem ao tipo de evento:– Eventos têm um ID de evento único que

especifica o tipo de evento;– Exemplos:

• MouseEvents são tratados por MouseListeners e MouseMotionsListeners;

• KeyEvents são tratados por KeyListeners e• Etc.

Page 54: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 54

Exercício 03 - JTextField• Desenvolva um software que possua:

– 03 JTextField's– 01 JPasswordField e– 01 JFrame.

• O software deverá funcionar assim: – ao escrevermos nos componentes e/ou

apertarmos a tecla <Enter>, o nome e o valor no componente deverá ser mostrado num JoptionPane;

• Conforme imagem no próximo slide:

Page 55: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 55

Exercício 03 – Resultado Visual

Page 56: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 56

Exemplo 03 – JTextField e JPasswordField

• Parte 01 - Classe Main.

• Parte 02 - Classe TextFieldFrame.

Page 57: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 57

JButton

• Botão:– O usuário do componente clica para

desencadear uma ação específica;

– Pode ser botão de comando, caixa de seleção, botão de alternância ou botão de opção;

– Os tipos de botões são subclasses da classe AbstractButton.

Page 58: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 58

JButton

• Método interessante:

– setMnemonic • Este método configura uma tecla de atalho (alt

+ “um caractere”) no texto apresentado no

rótulo do JButton.

Page 59: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 59

Observação

Em geral, os botões utilizam letras maiúsculas e minúsculas no estilo de título de livro.

Page 60: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 60

JButton

• Botão de comando:– Dispara um ActionEvent quando é

clicado;

– Criado com a classe JButton;

– O texto na face do botão é chamado rótulo do botão.

Page 61: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 61

Aparência e Comportamento

Ter mais de um JButton com o mesmo rótulo torna os JButton's ambíguos para o usuário. Forneça um rótulo único para cada botão.

Page 62: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 62

Hierarquia do Botão Swing.

Page 63: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 63

JButton

•JButton's podem ter um ícone de rollover:

– Aparece quando o mouse é posicionado sobre um botão;

– Adicionado a um JButton com o método setRolloverIcon.

Page 64: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 64

Aparência e Comportamento

Como a classe AbstractButton suporta exibição de texto e imagens em um botão, todas as subclasses de AbstractButton também suportam exibição de texto e imagens.

Page 65: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 65

Aparência e Comportamento

Utilizar ícones rollover para JButton's fornece aos usuários um feedback visual que indica que, quando eles clicam no mouse enquanto o cursor está posicionado sobre o botão, uma ação ocorrerá.

Page 66: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 66

Observação

• Quando utilizada em uma classe interna, a palavra-chave this referencia o objeto de classe interna atual sendo manipulado;

• Um método de classe interna pode utilizar this do seu objeto de classe externa precedendo this com o nome de classe externa e um ponto, como em ButtonFrame.this.

Page 67: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 67

Exercício 04 - JButton• Desenvolva um software utilizando:

– 01 JFrame,– 02 JButton's e– 02 figuras.

• Seu software deverá possuir um botão com imagem e outro sem. E deverá funcionar assim:– Ao clicar em um botão, deverá ser mostrado em um JOptionPane uma mensagem contendo o nome do componente e seu texto;

– No botão com imagem, ao passarmos o mouse sobre o componente, uma imagem deverá sobrepor a outra.

• Seu software deverá possuir a seguinte aparência (slide a seguir):

Page 68: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 68

Exercício 04 – Resultado Visual

Page 69: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 69

Exemplo 04 - JButton

• Parte 01 - Classe Main.

• Parte 02 - Classe ButtonFrame.

Page 70: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 70

Dúvidas???

Page 71: TIC - Programação Visual .pdf · TIC - Programação Visual Unidade 14 – Componentes 10 Alguns Componentes Básicos Componente Descrição JLabel Exibe texto não-editável ou

TIC - Programação Visual

Unidade 14 – Componentes 71

Bibliografia• DEITEL, H. M.; DEITEL, . . P J Java Como

Programar; 6. ., : ed São Paulo, 2005.Pearson

• , . SALIBA JÚNIOR E Slides da disciplina - de Programação de Computadores II

- . : CEFET MG Disponível em< :// . . . / /http www esj eti br CEFETMG Disc

/ 2/ 2_ _04. > iplinas PC PC Unidade pdf : 20 . 2012.Acesso em set