APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE II Prof. Thiago Pereira Rique [email protected] http://thiagorique.wordpress.com/ AGENDA Tipos comuns de eventos GUI e interfaces ouvintes Como o tratamento de evento funciona JButton Botões que mantêm o estado JComboBox e uso de uma classe interna anônima para tratamento de evento TIPOS COMUNS DE EVENTOS GUI E INTERFACES OUVINTES Algumas classes java.awt.event de evento do pacote TIPOS COMUNS DE EVENTOS GUI E INTERFACES OUVINTES Algumas interfaces listener de eventos comuns do pacote java.awt.event COMO O TRATAMENTO DE EVENTO FUNCIONA Temos que responder duas perguntas: 1. Como o handler de evento é registrado? 2. Como o componente GUI sabe chamar actionPerformed em vez de algum outro método de tratamento de evento? COMO O TRATAMENTO DE EVENTO FUNCIONA Registrando eventos Cada JComponent possui uma variável de instância listenerList que referencia um objeto da classe EventListenerList (javax.swing.event). COMO O TRATAMENTO DE EVENTO FUNCIONA Registrando eventos COMO O TRATAMENTO DE EVENTO FUNCIONA Invocação de handler de evento Segunda pergunta: como o componente GUI sabe chamar actionPerformed em vez de outro método? Tipo ouvinte de evento! Despacho (dispatching) Processo pelo qual um 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. JBUTTON Clicar (Ação específica) Botões de comando, caixas de seleção, botões de alternação e botões de opção JBUTTON JBUTTON JBUTTON JBUTTON JBUTTON JBUTTON Acessando a referência this em um objeto de uma classe de primeiro nível a partir de uma classe interna. ButtonFrame.this BOTÕES QUE MANTÊM O ESTADO Botões de estado JToggleButton JCheckBox JRadioButton BOTÕES QUE MANTÊM O ESTADO JCheckBox BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO JRadioButton BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO BOTÕES QUE MANTÊM O ESTADO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Caixas de combinação JComboBox ItemEvents JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Continua... JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Continua... JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Continua... JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Continua... JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Continua... JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Classe de teste JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO JCOMBOBOX E USO DE UMA CLASSE INTERNA ANÔNIMA PARA TRATAMENTO DE EVENTO Utilizando uma classe interna anônima para tratamento de evento Objeto ouvinte de evento Classe interna anônima; Deve-se criar um objeto da classe no ponto em que foi declarada; Pode acessar variáveis de instância e métodos de sua classe de primeiro nível, bem como variáveis locais final do método que a define; Não pode acessar variáveis locais não final. public class MyHandler implements ItemListener REFERÊNCIA DEITEL, H.M; Java Como Programar. Ed. Pearson, 8ª ed, 2010.