Buscar

Aula 6- 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 6
Professora: Jane
Programação Orientada a Objetos
Professora : Jane
*
Manipulação de eventos
Eventos são gerados quando o usuário interage com a interface gráfica.
Exemplos de eventos :
Clicar em um botão
Selecionar um item de um menu
Arrastar um objeto pela tela
Rolar um texto usando as barras de rolagem
Digitar uma informação em uma caixa de texto
Passar o mouse sobre um objeto
Redimensionar um objeto
Programação Orientada a Objetos
Professora : Jane
*
Listeners
No Java os eventos são tratados por objetos chamados “listeners” (ouvintes).
Fonte do evento : botão Ok
Programação Orientada a Objetos
Professora : Jane
*
 Um só ouvinte para duas fontes do mesmo tipo. As fontes dos eventos são objetos de JButton.
Programação Orientada a Objetos
Professora : Jane
*
Objeto Listener (ouvinte)
Cada componente registra um objeto que irá receber os eventos (objeto listener), o que representa uma forma de delegar tratamento de evento.
Os eventos são objetos que são reportados somente aos “listeners” registrados. 
Programação Orientada a Objetos
Professora : Jane
*
Hierarquia de classes 
relacionadas a eventos do AWT
Fonte : Core Java
Programação Orientada a Objetos
Professora : Jane
*
 Devido às particularidades de cada evento, AWT e Swing prevêem um conjunto de interfaces que devem ser implementadas em nossas aplicações, de acordo com o tipo do evento que desejamos tratar.
Evento é um ActionEvent
Interface é a ActionListener
Programação Orientada a Objetos
Professora : Jane
*
Interface 
( não é interface gráfica ou GUI)
 Lembrete : 
Um interface representa um conjunto de serviços. 
Uma interface só pode ter métodos abstratos e constantes estáticas.
Um método abstrato não tem corpo. 
 Ex: public double ordenar();
Uma classe pode implementar uma ou mais interfaces. O que isso significa ? Que a classe tem que definir todos os métodos abstratos da interface. 
Programação Orientada a Objetos
Professora : Jane
*
Cada evento tem uma interface listener associada .
Exemplo : 
 Um objeto ActionEvent está associado à ActionListener.
O objeto listener usará a informação no objeto evento para determinar a reação ao evento.
Programação Orientada a Objetos
Professora : Jane
*
Interfaces listener 
pacote : java.awt.event
“ Embora o pacote javax.swing.event contenha mais interfaces listener que são específicas aos componentes de interface do Swing, ainda são usadas as interfaces listener básicas do AWT para processamento de eventos em geral. “ 
 Fonte : Core Java
Programação Orientada a Objetos
Professora : Jane
*
Detalhando um pouco .. algumas interfaces mais utilizadas:
ActionListener – eventos que representam ação, como por exemplo clique no botão.
ItemListener – evento no combobox
KeyListener – eventos do teclado
MouseListener – eventos de clique com o mouse
MouseMotionListener – eventos de movimentação do mouse
WindowListener – eventos direcionados para a janela de uma aplicação (fechar, minimizar, maximizar, etc)
Programação Orientada a Objetos
Professora : Jane
*
Classe TestaEventos implementa a interface ActionListener
 Atenção : Deverá ser definido o método actionPerformed da 
 interface ActionListener.
Programação Orientada a Objetos
Professora : Jane
*
Resumindo ...
 Um objeto listener é uma instância (objeto) de uma classe que implementa uma interface especial denominada interface listener. Ex: ActionListener
 A fonte do evento é um objeto que pode registrar objetos listener (ouvinte) e pode enviá-los objetos eventos.
Os objetos listener usarão a informação no objeto evento para determinar a reação ao evento.
Programação Orientada a Objetos
Professora : Jane
*
A informação sobre o evento está encapsulada no objeto evento.
Diferentes fontes de evento podem produzir diferentes tipos de eventos.
Exemplo 1 : fonte do evento : botão
 evento : ActionEvent
Exemplo 2: fonte do evento : window
 evento : WindowEvent
Programação Orientada a Objetos
Professora : Jane
*
Associando um objeto fonte do evento ao objeto ouvinte
Para associar um objeto (fonte do evento) ao listener que vai tratar os seus eventos, usamos os métodos do tipo:
add<nome da interface>(<listener>)
Exemplos:
	cadastrar.addActionListener(<nome do objeto listener que vai tratar os eventos do botao cadastrar>);
	nome.addKeyListener((<nome do objeto listener que vai tratar os eventos da caixa de texto nome>);
	this.addMouseListener(<nome do objeto listener que vai tratar os eventos do mouse no objeto atual>);
Programação Orientada a Objetos
Professora : Jane
*
Exemplo (Fonte : Core Java) 
 “ Agora, o ouvinte (listener) é notificado quando um “evento ação” ocorrer no botão . 
 Para botões, um evento ação é um clique no botão. “ 
 Fonte: Core Java
 
Programação Orientada a Objetos
Professora : Jane
*
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
*
Exemplo
Objetivo : Construir a interface gráfica abaixo. 
 Após digitar o nome e clicar no botão Clique aqui, a palavra Surpresa mudará para um Olá seguido do nome digitado. Então, a janela ficará amarela.
 
Nomes dos componentes usados : rotuloNome (ou lblNome), campoNome (txtNome), botaoCliqueAqui (ou btnCliqueAqui) , rotuloSurpresa (lblSupresa)
Programação Orientada a Objetos
Professora : Jane
*
Passo a passo ... Resumido ... 
Veja o código
Passo 1 : Desenhar a interface usando FlowLayout. 
Passo 2 : Adicionar componentes adequadamente.
Passo 3: Criar uma classe interna para o tratamento do evento. Esta classe deverá implementar a interface ActionListener. Depois, criar o objeto ouvinte da classe interna.
Passo 4: Associar o objeto fonte ao ouvinte
NOTE :
 
  Fonte do evento : objeto botaoCliqueAqui da classe JButton
		  Ouvinte do evento : objeto ouvinte, que é um objeto da classe interna.
  Associando a fonte do evento ao ouvinte do evento :
 botaoCliqueAqui.addActionListener(ouvinte);
Programação Orientada a Objetos
Professora : Jane
*
Classe interna 
Note : O objeto ouvinte é desta classe 
private class OuvinteBotao implements ActionListener
 {
 public void actionPerformed(ActionEvent e)
 {
 rotuloSurpresa.setText("Olá " + campoNome.getText() + " !");
 c.setBackground(Color.YELLOW);
 }
 } //fim da classe BotaoOuvinte
Programação Orientada a Objetos
Professora : Jane
*
Exercícios de fixação 
Trate no método actionPerformed o caso do usuário não digitar nome algum e clicar no botão.
Teste o método getSource() com o objeto e.
Teste o método getActionCommand() com o objeto botão.
Programação Orientada a Objetos
Professora : Jane
*
GABARITO
 private class OuvinteBotao implements ActionListener {
 public void actionPerformed(ActionEvent e)
 {
 JOptionPane.showMessageDialog(null,"Identificar a acao do evento: " + 
 e.getActionCommand());
 String nome = campoNome.getText();
 if (!nome.equals("")) // não é o caso que nome é igual a string vazia ?
 {
 rotuloSurpresa.setText(" Olá " + nome + " !");
 c.setBackground(Color.yellow);
 }
 else
 rotuloSurpresa.setText("Por favor, digite seu nome. ");
Programação Orientada a Objetos
Professora : Jane
*
 //Usando getSource() e equals
 Object b = e.getSource(); //getSource() retorna o objeto que sofreu o evento
if (b.equals(botaoCliqueAqui))
 System.out.println("O botão Clique Aqui sofreu o evento");
 } fim do método actionPerformed
 } fim da classe interna OuvinteBotao
Programação Orientada a Objetos
Professora : Jane
*
Exemplo ... Veja o projeto
Observações : Será necessário usar os métodos abaixo 
Para converter de String para double : usar o método estático parseDouble da classe Double.
 Faz-se : double valor = Double.parseDouble(str); sendo str uma string que pode ser convertida para double.
2) Para converter de double para String : usar o método valueOf
 Faz-se : String resultado = String.valueOf(numero); onde numero é um double.
Programação Orientada a Objetos
Professora : Jane
*
Exercício
 Crie um aplicação para calcular o IMC. Deve-se ler a altura e o peso de um indivíduo e calcular o índice de massa corporal, dado pela fórmula:
IMC = peso / (altura * altura)
onde peso deve estar em Kg e a altura em metros.

Teste o Premium para desbloquear

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

Continue navegando