73
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo deve realizar; GUIs são baseadas em evento. Uma interação com o usuário cria um evento, que guia o programa para realizar uma tarefa; Eventos comuns: clicar em um botão, digitar em um campo de texto, selecionar um item de menu, fechar uma janela, mover o mouse; O evento causa uma chamada a um método (o handler de evento). Handler de evento = código que realiza uma tarefa em resposta a um evento; O processo total de responder a eventos é conhecido como Tratamento de Eventos.

Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Embed Size (px)

Citation preview

Page 1: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 1

Um usuário interage com uma GUI para indicar as tarefas que o aplicativo deve realizar;

GUIs são baseadas em evento.◦ Uma interação com o usuário cria um evento, que guia o programa

para realizar uma tarefa;◦ Eventos comuns: clicar em um botão, digitar em um campo de texto,

selecionar um item de menu, fechar uma janela, mover o mouse;◦ O evento causa uma chamada a um método (o handler de evento).

Handler de evento = código que realiza uma tarefa em resposta a um evento;

O processo total de responder a eventos é conhecido como Tratamento de Eventos.

Page 2: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 2

JTextFields e JPasswordFields (pacote javax.swing). ◦JTextField estende a classe JTextComponent (pacote javax.swing.text), que fornece muitos recursos comuns aos componentes baseados em texto do Swing;

◦A classe JPasswordField estende JTextField e adiciona métodos que são específicos ao processamento de senhas;

◦JPasswordField mostra que os caracteres estão sendo digitados à medida que o usuário os insere, mas oculta os caracteres reais com caracteres eco.

Page 3: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 3

Page 4: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 4

Page 5: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 5

Page 6: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 6

Page 7: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 7

Page 8: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 8

Page 9: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 9

Page 10: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 10

Quando o usuário digita dados em um JTextField ou JPasswordField e, então, pressiona Enter, um evento ocorre;

Você pode digitar somente no campo de texto que estiver “em foco”. ◦Um componente recebe o foco quando o usuário clica no

componente.

Page 11: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 11

Antes que um aplicativo possa responder a um evento de um componente GUI, deve-se realizar vários passos de codificação:

Criar uma classe que represente o handler de evento;

Implementar uma interface apropriada, conhecida como Interface Ouvinte de Eventos, na classe do Passo 1;

Indicar que um objeto da classe dos Passos 1 e 2 deve ser notificado quando o evento ocorrer. Isso é conhecido como Registrar o Handler de Evento.

Page 12: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 12

Todas as classes discutidas até agora foram Classes de Primeiro Nível (não foram declaradas dentro de outra classe);

O Java permite declarar classes dentro de outras classes — são chamadas Classes Aninhadas. ◦Podem ser static ou não static; ◦As classes não static aninhadas são chamadas Classes

Internas e são frequentemente utilizadas para implementar handlers de evento.

Page 13: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 13

Page 14: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 14

Antes que um objeto de uma classe interna possa ser criado, deve haver um objeto da classe de primeiro nível que contém a classe interna. ◦ Isso é necessário porque um objeto de classe interna tem

implicitamente uma referência a um objeto de sua classe de primeiro nível;

Há um relacionamento especial entre esses objetos — o objeto da classe interna tem permissão de acessar diretamente todas as variáveis e métodos da classe externa;

Uma classe aninhada que é static não exige um objeto de sua classe de primeiro nível e não tem implicitamente uma referência a um objeto da classe de primeiro nível.

Page 15: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 15

Classes internas podem ser declaradas public, protected ou private;

Visto que as rotinas de tratamento de evento tendem a ser específicas do aplicativo em que são definidas, muitas vezes elas são implementadas como classes internas private.

Page 16: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 16

Os componentes GUI podem gerar muitos eventos em resposta a interações de usuário;

Cada evento é representado por uma classe e pode ser processado apenas pelo tipo de handler de evento apropriado;

Normalmente, os eventos suportados de um componente são descritos na documentação da Java API para a classe desse componente e suas superclasses.

Page 17: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 17

Quando o usuário pressiona Enter em um JTextField ou JPasswordField, um ActionEvent (pacote java.awt.event) ocorre;

É processado por um objeto que implementa a interface ActionListener (pacote java.awt.event);

Para tratar ActionEvents, uma classe deve implementar a interface ActionListener e declarar o método actionPerformed();◦Esse método especifica as tarefas a serem realizadas quando

ocorrer um ActionEvent;◦É disparado automativamente quando um evento de ação

ocorrer.

Page 18: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 18

Page 19: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 19

Page 20: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 20

Deve-se registrar um objeto como o handler de evento para cada campo de texto – no caso do exemplo – ou cada componente GUI que sofrer evento de ação;

O método addActionListener() registra um objeto ActionListener para tratar ActionEvents;

Assim, o handler de eventos passa a ouvir o campo de texto (ou outro objeto registrado).

Page 21: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 21

O componente GUI com o qual o usuário interage é a Origem de Evento;

O método ActionEvent getSource() (herdado da classe EventObject) retorna uma referência para a origem de evento;

O método ActionEvent getActionCommand() obtém o texto que o usuário digitou no campo de texto que gerou o evento;

O método JPasswordField getPassword() retorna os caracteres da senha como um array de tipo char;

No caso do componente ser não editável, mesmo assim o evento pode ser disparado, caso o componente em questão venha a receber foco durante a execução do aplicativo.

Page 22: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 22

Há muitos tipos de eventos que podem ocorrer quando um usuário interage com uma GUI;

As informações sobre qualquer evento GUI são armazenadas em um objeto de uma classe que estende AWTEvent;

A Figura 14.11 ilustra uma hierarquia que contém muitas classes de evento do pacote java.awt.event;

Utilizados em componentes AWT e Swing;

Tipos adicionais de evento que são específicos dos componentes GUI Swing são declarados no pacote javax.swing.event.

Page 23: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 23

Page 24: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 24

Page 25: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 25

Tipos como esses são declarados no pacote java.awt.event e alguns deles são mostrados na Figura 14.12;

O mecanismo de tratamento de eventos (ou Modelo de Delegação de Evento) se divide em partes:◦ORIGEM DO EVENTO – componente com o qual o usuário

interage;

◦OBJETO DO EVENTO – contém as informações sobre o evento que ocorreu, como uma referência à sua origem;

◦OUVINTE DO EVENTO – notificado pela origem do evento quando um evento ocorre e um de seus métodos executa uma resposta ao evento, recebendo como argumento o objeto do evento.

Page 26: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 26

Para cada tipo de objeto de evento, há, em geral, uma interface ouvinte de eventos apropriada. Um ouvinte de eventos é um objeto que implementa a(s) interface(s) ouvinte(s) de evento do pacote event. Cada uma dessas interfaces especifica um ou mais métodos de tratamento de evento que devem ser declarados na classe que implementa a interface;

Quando um evento ocorre o componente GUI notifica seus ouvintes registrados, chamando o método de tratamento apropriado de cada ouvinte.

Page 27: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 27

Todo JComponent tem uma variável listenerList que referencia um EventListenerList (pacote javax.swing.event);

São mantidas referências a ouvintes registrados na listenerList (um array de ouvintes);

Quando um ouvinte é registrado, uma nova entrada é colocada na listenerList do componente. ◦Toda entrada também inclui um tipo de ouvinte.

Page 28: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 28

Page 29: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 29

Como o componente GUI sabe que deve chamar actionPerformed() em vez de outro método? ◦Todo componente GUI suporta vários tipos de evento, inclusive

eventos de mouse, eventos de teclado e outros;

◦Quando um evento ocorre, o evento é despachado apenas para os ouvintes de evento do tipo apropriado;

Despacho (dispatching) é simplesmente o processo pelo qual o componente GUI chama um método de tratamento de evento em cada um de seus ouvintes que são registrados para o tipo de evento que ocorreu.

Page 30: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 30

Cada tipo de evento tem uma ou mais interfaces ouvinte de eventos correspondentes;

ActionEvents são tratados por ActionListeners; MouseEvents são tratados por MouseListeners e MouseMotionListeners;

KeyEvents são tratados por KeyListeners;

Quando ocorre um evento, o componente GUI recebe (do JVM) um único ID de evento para especificar o tipo de evento;

O componente GUI utiliza o ID de evento para decidir o tipo de ouvinte para o evento que deve ser despachado e decidir qual método chamar em cada objeto ouvinte.

Page 31: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 31

Para um ActionEvent, o evento é despachado para o método actionPerformed() de todos ActionListeners registrados;

Para um MouseEvent, o evento é despachado para cada MouseListener ou MouseMotionListener registrado, dependendo do evento de mouse que ocorre;◦O ID de evento de MouseEvent determina quais dos vários

métodos de tratamento de evento de mouse serão chamados.

Page 32: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 32

Um botão é um componente em que o usuário clica para acionar uma ação específica;

Há vários tipos de botões:◦Botões de Comando;◦Caixas de Seleção;◦Botões de Alternação;◦Botões de Opção;

Os tipos de botão são subclasses de AbstractButton (pacote javax.swing), que declara os recursos comuns de botões Swing.

Page 33: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 33

Page 34: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 34

Page 35: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 35

JButtons, assim como JTextFields, geram ActionEvents que podem ser processados por qualquer objeto ActionListener.

São criados a partir da classe JButton;

O texto na face de um JButton é chamado Rótulo de Botão;

Uma Gui pode ter muitos JButtons, mas, em geral, cada rótulo de botão deve ser único na parte da Gui em que é atualmente exibido.

Page 36: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 36

Page 37: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 37

Page 38: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 38

Page 39: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 39

Page 40: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 40

Page 41: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 41

Um JButton pode exibir um Icon;

Um JButton também pode ter um Icon de rollover, exibido quando o usuário posiciona o mouse sobre o Jbutton.◦ Isso faz com que o ícone se altere quando o mouse está

dentro/fora do botão, tornando essas situações mais distintas;

O ícone do JButton altera-se quando o mouse move-se para dentro e para fora da área do JButton na tela;

O método AbstractButton setRolloverIcon() especifica a imagem exibida no JButton quando o usuário posiciona o mouse sobre ele.

Page 42: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 42

Page 43: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 43

Page 44: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 44

Page 45: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 45

Três tipos de botões de estado, que têm valores ativados/desativados ou verdadeiro/falso:◦ JToggleButton;◦ JCheckBox;◦ JRadioButton;

As classes JCheckBox e JRadioButton são subclasses de JToggleButton;

JRadioButtons são agrupados e mutuamente exclusivos — somente um no grupo pode ser selecionado por vez;

JCheckBoxs não precisam ser agrupados e não são mutuamente exclusivos.

Page 46: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 46

Contém um rótulo de caixa de seleção que aparece à direita da caixa de seleção, por padrão. O rótulo é informada através do construtor da classe;

Gera um ItemEvent quando é clicado.◦ ItemEvents são tratados por um objeto da interface ItemListener;◦ Passado para o método itemStateChanged() da interface, e que deve

ser implementado pelo ouvinte do evento. Esse é o método que será disparado quando ocorrer um clique no checkBox;

A associação do ouvinte ao objeto origem do evento ocorre através do método addItemListener();

O método isSelected() retorna se uma caixa de seleção está selecionada (true) ou não (false);

Um aplicativo pode ter vários checkBoxs atuando em conjunto.

Page 47: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 47

A String passada para o construtor JCheckBox é o rótulo da caixa de seleção que aparece à direita da JCheckBox;

O método JTextField setFont() (herdado por JTextField indiretamente de Component) configura a fonte do JTextField como uma nova Font (pacote java.awt);

O construtor da classe Font contém os argumentos: nome da fonte (String), estilo da fonte (constantes de Font. Como: Font.PLAIN, Font.BOLD, Font.ITALIC) e tamanho da fonte. Quando mais de um estilo precisar ser considerado, deve-se passar como argumento a soma de tais estilos (das constantes).

Page 48: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 48

Page 49: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 49

Page 50: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 50

Page 51: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 51

Page 52: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 52

Page 53: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 53

Botões de opção (declarados com a classe JRadioButton) são semelhantes a caixas de seleção no sentido de que têm dois estados — selecionado e não selecionado;

Os botões de opção aparecem como um grupo em que apenas um botão pode ser selecionado por vez;

Selecionar um botão de opção diferente força a remoção da seleção de todos os outros que estão selecionados;

Utilizados para representar opções mutuamente exclusivas;

A relação lógica entre os botões de opção é mantida por um objeto ButtonGroup (pacote javax.swing), que organiza um grupo de botões e não é exibido em uma interface com o usuário.

Page 54: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 54

O método ButtonGroup add() associa um JRadioButton com o grupo;

Se mais de um objeto JRadioButton selecionado for adicionado ao grupo, aquele que tiver sido adicionado primeiro será selecionado quando a GUI for exibida;

JRadioButtons, assim como JCheckBoxes, geram ItemEvents quando são clicados.

Page 55: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 55

Page 56: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 56

Page 57: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 57

Page 58: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 58

Page 59: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 59

Page 60: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 60

Page 61: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 61

Page 62: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 62

Uma caixa de combinação (ou lista drop-down) permite ao usuário selecionar um único item de uma lista;

Caixas de combinação são implementadas com a classe JComboBox, que estende a classe Jcomponent;

JComboBoxs também geram ItemEvents;

O construtor de um JComboBox recebe como argumento um array de Strings com os elementos da lista que deve ser exibida. O primeiro item da lista é o item inicialmente exibido no comboBox;

Page 63: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 63

Cada item na lista tem um índice, iniciando com 0 (zero);

O primeiro item adicionado a uma JComboBox aparece como o item atualmente selecionado quando a JComboBox é exibida;

Outros itens são selecionados clicando na JComboBox e, então, selecionando um item da lista que aparece;

O método JComboBox setMaximumRowCount configura o número máximo de elementos que é exibido quando o usuário clica na JComboBox;

Se houver itens adicionais, a JComboBox fornece uma barra de rolagem, para que o usuário role por todos os elementos da lista.

Page 64: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 64

Page 65: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 65

Page 66: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 66

Page 67: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 67

Page 68: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 68

Page 69: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 69

Page 70: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 70

Uma classe interna anônima é uma classe interna que é declarada sem nome e, em geral, aparece dentro de uma declaração de método;

Como outras classes internas, uma classe interna anônima pode acessar os membros de sua classe de primeiro nível;

Uma classe interna anônima tem acesso limitado às variáveis locais do método em que ela é declarada;

Visto que uma classe interna anônima não tem nomes, deve-se criar um objeto da classe interna anônima no ponto em que a classe é declarada. ◦ Costuma ocorrer dentro da chamada do método, sendo um argumento deste

método.

Page 71: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 71

Page 72: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 72

O método JComboBox getSelectedIndex() retorna o índice do item selecionado;

Para cada item selecionado de uma JComboBox, a seleção de outro item é primeiro removida — então dois ItemEvents ocorrem quando um item é selecionado;

O método ItemEvent getStateChange() retorna o tipo de alteração de estado. ItemEvent.SELECTED indica que um item foi selecionado.

Page 73: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 Um usuário interage com uma GUI para indicar as tarefas que o aplicativo

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 73