Buscar

Aula 7- POO

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando