Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Programação Orientada a Objetos Professora : Jane * Interface Gráfica com Swing Eventos Aula 7 Professora: Jane Programação Orientada a Objetos Professora : Jane * Manipulação de eventos com botão Para manipular botões trabalharemos com ActionEvent e portanto, com a interface ActionListener. Lembrando ... passos para manipulação do evento : Criar uma classe interna que implemente a interface ActionListener. Para isso, o método actionPerformed deverá ser programado. Criar um objeto da classe interna mencionada acima. Este objeto será o tratador do evento, ou seja, o ouvinte da ação. Associar o objeto que é a fonte do evento (no caso, o item do menu) com o objeto ouvinte do evento, que irá tratar o evento. Para isso, use <objeto fonte>. add<nome da interface>(<objeto ouvinte>); Programação Orientada a Objetos Professora : Jane * Tarefa prática Faça uma aplicação para converter de milhas para km e de km para milhas. O título da janela deve ser, adequadamente, definido. Note : 1 Km = 0,62 milhas 1 milha = 1,61 Km Use label, textfield e botão. Emita mensagem de erro, caso nenhum valor seja fornecido para conversão. Veja a sugestão abaixo : Programação Orientada a Objetos Professora : Jane * Manipulação de eventos com menu Para manipular opções de menu trabalharemos com ActionEvent e portanto, com a interface ActionListener. Ou seja, faça o que aprendeu com botões da classe JButton. Passos para manipulação do evento : Criar uma classe interna que implemente a interface ActionListener. Para isso, o método actionPerformed deverá ser programado. Criar um objeto da classe interna mencionada acima. Este objeto será o tratador do evento, ou seja, o ouvinte da ação. Associar o objeto que é a fonte do evento (no caso, o item do menu) com o objeto ouvinte do evento, que irá tratar o evento. Para isso, use <objeto fonte>. add<nome da interface>(<objeto ouvinte>); Programação Orientada a Objetos Professora : Jane * Exemplo : Aplicação com menu Trecho : Considere sair e abrir opções de um menu ////////////////////////////////////////////////////////// // Eventos ////////////////////////////////////////////////////////// Ouvinte ouvinte = new Ouvinte(); sair.addActionListener(ouvinte); abrir.addActionListener(ouvinte); Programação Orientada a Objetos Professora : Jane * Dentro da classe pública de nossa aplicação : private class Ouvinte implements ActionListener { public void actionPerformed (ActionEvent e) { Object obj = e.getSource(); if (obj == sair) { JOptionPane.showMessageDialog(null,"Testando ... Fechando a aplicação."); System.exit(0); //termina o programa } else if (obj == abrir) JOptionPane.showMessageDialog(null,"Abrindo arquivo ..."); } //fim do método actionPerformed } //fim da classe Ouvinte Veja o projeto exemplo Aula7_ExemploMenuEvento Programação Orientada a Objetos Professora : Jane * Listeners No Java os eventos são tratados por objetos chamados “listeners” (ouvintes). Fonte do evento : opção Sair do menu Arquivo. Programação Orientada a Objetos Professora : Jane * Já visto .... ActionListener e ActionEvent Interface ActionListener: Evento ActionEvent: As interfaces e eventos estão no pacote java.awt.event . Logo, devemos importar este pacote. Programação Orientada a Objetos Professora : Jane * Usando o projeto do arquivo Aula7_ExemploMenuEvento Tarefa : Adicione o item Pintar Painel ao menu Editar. Em seguida, permita que quando a opção Pintar Painel for acionada, a cor de fundo da janela mude para azul. DICA : Use o método getContentPane() Programação Orientada a Objetos Professora : Jane * Manipulação de eventos em janelas Para trabalhar com janelas teremos que tratar eventos da classe WindowEvent. A classe do objeto tratador do evento deverá implementar a interface WindowListener, que possui 7 métodos. E agora ? Teremos que implementar os 7 métodos ? classe interface métodos da interface Programação Orientada a Objetos Professora : Jane * Classe Adapter Muitas interfaces ouvintes de eventos como WindowListener especifica muitos métodos. Como visto, a interface WindowsListener possui 7 métodos de tratamento de eventos de janela. Para muitas das interfaces ouvintes que têm múltiplos métodos, os pacotes java.awt.event e javax.swing.event fornecem classes adaptadoras ouvintes de evento. O que é uma classe Adapter ? “Uma classe Adapter implementa uma interface e fornece uma implementação padrão ou default (com o corpo de um método vazio) de cada método da interface. “ [Deitel] Programação Orientada a Objetos Professora : Jane * Como usar uma classe Adapter ? 1º) Fazer uma extensão da classe Adapter para poder herdar a implementação default de cada método (usar extends). 2º) Sobrescrever cada método que for necessário para o tratamento de eventos. Ou seja, implementar apenas os métodos que interessem para a aplicação. Programação Orientada a Objetos Professora : Jane * Classes adaptadoras de eventos e as interfaces que elas implementam Programação Orientada a Objetos Professora : Jane * Os SETE métodos da interface WindowListener void windowActivated(WindowEvent e) : ação a ser realizada se a janela foi ativada void windowClosed(WindowEvent e) : chamado quando uma janela foi fechada void windowClosing(WindowEvent e) : ação a ser realizada se a janela está sendo fechada. void windowDeactivated(WindowEvent e) : invocado quando a janela não é a mais a janela ativa. Programação Orientada a Objetos Professora : Jane * void windowDeiconified(WindowEvent e) : invocado quando uma janela muda de minimizada para seu estado normal. void windowIconified(WindowEvent e) : invocado quando uma janela muda de normal para minimizada. void windowOpened(WindowEvent e) : ação a ser realizada se a janela foi aberta . Exemplo : Projeto Aula7_EventosJanelas Programação Orientada a Objetos Professora : Jane * Tarefa prática com menu e janela Projeto : Aula7_Menu_Evento_TAREFAS Teste, leia o projeto, tire dúvidas e faça as tarefas abaixo : Peça confirmação na hora de sair da aplicação, seja via menu ou via janela. DICA : Use janela de diálogo com showConfirmDialog //Trecho ... int opcao = JOptionPane.showConfirmDialog(null, "Tem certeza que deseja fechar ... ?", "Confirmação", JOptionPane.YES_NO_OPTION); if (opcao == JOptionPane.YES_OPTION) //Faz o que tem que ser feito .... Programação Orientada a Objetos Professora : Jane * 2) Limpar os dados do novo cliente cadastrado toda vez que selecionar o item Novo do menu Cliente. Além disso, oferecer o botão Limpar para limpar os dados do cliente. Programação Orientada a Objetos Professora : Jane * 3) Completar o trecho que trata a busca de um cliente pelo código a fim de exibir os dados do cliente (sucesso na busca). Caso o cliente não seja encontrado, deverá ser emitida uma mensagem de aviso. DICA: Volte com o painel que permite exibir os dados do cliente. if (obj == btnBuscarCliente) { String sCodigo = txtCodigo.getText(); int codigo = Integer.parseInt(sCodigo); Cliente c = clientes.buscar(codigo); //PROGRAMAR NESTE TRECHO } 4) Adicionar o CPF para o cliente. Para isso, reveja a classe Cliente, entre outra(s), fazendo os ajustes necessários. Note que CPF será mais um atributo da classe Cliente.
Compartilhar