• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Java12
 

Java12

on

  • 2,811 views

 

Statistics

Views

Total Views
2,811
Views on SlideShare
2,806
Embed Views
5

Actions

Likes
0
Downloads
216
Comments
0

1 Embed 5

http://www.slideshare.net 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Java12 Java12 Presentation Transcript

    • Linguagens e Técnicas de Programação - JAVA José Marcos Barbosa da Silveira [email_address]
    • Controle de Eventos
      • Objetivos deste capítulo
      • Enumerar as classes receptoras de eventos;
      • Demonstrar os principais eventos envolvidos na elaboração de uma aplicação;
      • Fornecer conhecimento para que o aluno possa desenvolver uma GUI profissional;
      • Apresentar as relações existentes entre as classes receptoras e seus métodos para tratamento dos eventos.
    • O que são eventos?
      • Quando o usuário interage com uma interface de aplicativo final (teclado, mouse etc), isso causa o disparo de alguma ação: o evento .
      • Mais propriamente, eventos são objetos que descrevem a ação ocorrida.
      • Qualquer objeto pode ser notificado de um evento.
      • Existem vários tipos de classes de eventos para tratar as diversas categorias de ações desencadeadas pelo usuário final.
        • *Incluir a instrução import java.awt.event.* .
    • Como os eventos são processados ?
      • Através de um modelo de delegação de eventos.
        • Os componentes da AWT implementam rotinas de manipulação de eventos (listener) com o objetivo de receber eventos.
        • O componente que gera o evento é chamado de fonte do evento (event source).
        • O componente que trata o evento é chamado de manipulador de evento (event handler) ou ouvinte de evento (event listener).
        • Normalmente a manipulação do evento é delegada para uma classe separada do componente-fonte desse evento.
      • Cada componente da AWT possui um conjunto de tipos de eventos a ele associado.
      • Os componentes que podem gerar eventos possuem métodos para adicionar ou remover “listeners”.
        • addActionListener
        • removeActionListener
      • A seguir são relacionados os tipos de eventos que cada componente da AWT pode gerar .
      Eventos gerados pelos componentes da AWT
    • Alguns dos e ventos gerados pelos componentes AWT/Swing Mais detalhes em: h ttp://java.sun.com/docs/books/tutorial/uiswing/events/eventsandcomponents.html .
      • Os tipos de eventos gerados pelos componentes da AWT são implementações da interface “listener”.
      • O nome da interface associado ao tipo de evento é definido como sendo o nome do evento, acrescido da palavra “Listener”.
        • Exemplo : tipo de evento: Action
            • interface: ActionListener
      • A seguir são descritas as interfaces dos eventos AWT.
      Interface de eventos listener AWT
    • Interface de eventos listener AWT (1)
    • Interface de eventos listener AWT Mais detalhes em: http://java.sun.com/docs/books/tutorial/uiswing/events/api.html .
    • Interface de eventos listener AWT
    • As 4 maneiras de implementar um evento
      • Fazer com que a própria classe (a que contém o objeto que gera o evento) i mplemente a interface (EventoListener) ou estenda a classe abstrata (EventoAdapter) do evento.
      • Exemplo: public class MinhaClasse implements WindowListener { } ou
      • public class MinhaClasse extends WindowAdapter { }.
      • Construir uma classe externa que implemente a interface ou estenda a classe abstrata do evento.
      • Exemplo: public class MinhaClasse { … }
      • public class EventoExt implements WindowListener { } ou
      • public class EventoExt extends WindowAdapter { }.
    • As 4 maneiras de implementar um evento - cont.
      • Construir uma classe-membro interna que implemente a interface ou estenda a classe abstrata do evento.
      • Exemplo: public class MinhaClasse { …
      • class EventoInt implements WindowListener { } ou
      • class EventoInt extends WindowAdapter { } }.
      • Construir uma classe anônima interna que implemente a interface ou a classe abstrata do evento.
      • Exemplo: public class MinhaClasse { …
      • janela.addWindowListener( new WindowAdapter( )
      • {
      • public void windowClosing(WindowEvent e)
      • {
      • System.exit(0);
      • } }); }.
    • Como escrever WindowListener
      • São gerados por um objeto janela (Window) após a janela ser: aberta, fechada, iconizada, desiconizada, ativada e desativada.
      • A interface WindowListener e a classe abstrata WindowAdapter possuem os métodos a seguir :
        • void windowOpened(WindowEvent)
          • é executado assim que a janela é mostrada pela primeira vez.
        • void windowClosing(WindowEvent)
          • é executado assim que o usuário solicita o fechamento da janela. Para fechar a janela, usa-se o método dispose ou setVisible(false).
    • WindowListener – Estendendo
      • import java.awt.*;
      • import java.awt.event.*;
      • import javax.swing.*;
      • public class WindowListenerDemo extends WindowAdapter {
      • //A classe WindowListenerDemo estende a classe WindowAdapter para tratamento do evento
      • public static void main (String args[])
      • {
      • JFrame j = new JFrame("Evento de Janela");
      • j.setSize(200,200);
      • j.addWindowListener(new WindowListenerDemo());
      • j.setVisible(true);
      • }
      • public void windowClosing(WindowEvent e)
      • {
      • System.exit(0);
      • }
      • }
    • WindowListener – Externa
      • import java.awt.*;
      • import java.awt.event.*;
      • import javax.swing.*;
      • public class WindowListenerDemo {
      • public static void main (String args[])
      • {
      • JFrame j = new JFrame("Evento de Janela");
      • j.setSize(200,200);
      • j.addWindowListener(new EventoJanela());
      • j.setVisible(true);
      • }
      • }
      • class EventoJanela extends WindowAdapter {
      • public void windowClosing(WindowEvent e)
      • {
      • System.exit(0);
      • }
      • } //classe externa de tratamento do evento
    • WindowListener – Interna
      • import java.awt.*;
      • import java.awt.event.*;
      • import javax.swing.*;
      • public class WindowListenerDemo extends JFrame{
      • public static void main (String args[])
      • {
      • WindowListenerDemo j = new WindowListenerDemo("Evento de Janela");
      • }
      • public WindowListenerDemo(String s){
      • setTitle(s);
      • setSize(200,200);
      • addWindowListener(new EventoJanela());
      • setVisible(true);
      • }
      • class EventoJanela extends WindowAdapter {
      • public void windowClosing(WindowEvent e)
      • {
      • System.exit(0);
      • }
      • } //classe interna de tratamento do evento
    • WindowListener – Anônima
      • import java.awt.*;
      • import java.awt.event.*;
      • import javax.swing.*;
      • public class WindowListenerDemo {
      • public static void main (String args[])
      • {
      • JFrame j = new JFrame("Evento de Janela");
      • j.setSize(200,200);
      • j.addWindowListener (new WindowAdapter() {
      • public void windowClosing(WindowEvent e)
      • {
      • System.exit(0);
      • }
      • }); // classe anônima interna de tratamento do evento
      • j.setVisible(true);
      • }
      • }
    • Como escrever um ActionListener
      • São os eventos mais fáceis e os mais comumente implementados.
      • Implementa-se um ActionListener para responder a uma intervenção do usuário.
      • Quando o usuário clicar um botão, o duplo clique em uma lista, a escolha em um menu ou pressionar o retorno de um campo texto, o gerenciador de eventos indicará que uma ação ocorreu.
        • O resultado é o envio de uma mensagem “actionPerformed” a todos os ActionListeners que estão registrados no componente-fonte.
      • import java.awt.*;
      • import java.awt.event.*;
      • import javax.swing.*;
      • public class ActionListenerDemo extends JFrame {
      • private JMenuBar jmbBarraMenu;
      • private JMenu jmopcoes;
      • private JMenuItem jmiSair;
      • private JButton bArea, bPerimetro;
      • private JPanel p1;
      • private JTextField jtfBase,jtfAltura,jtfResultado;
      • private JLabel jlBase,jlAltura,jlResultado;
      • public ActionListenerDemo() {
      • jmbBarraMenu=new JMenuBar();
      • jmopcoes=new JMenu("Opcoes");
      • jmiSair=new JMenuItem("Sair");
      ActionListener - Exemplo
      • jmopcoes.add(jmiSair);
      • jmbBarraMenu.add(jmopcoes);
      • setJMenuBar(jmbBarraMenu);
      • p1 = new JPanel(new GridLayout(7,4));
      • jlBase = new JLabel("Base: ");
      • jlAltura = new JLabel("Altura: ");
      • jlResultado = new JLabel("Resultado: ");
      • jtfBase = new JTextField(10);
      • jtfAltura = new JTextField(10);
      • jtfResultado = new JTextField(10);
      • bArea = new JButton("Area");
      • bPerimetro = new JButton("Perimetro");
      • p1.add(jlBase);
      • p1.add(jtfBase);
      • p1.add(jlAltura);
      • p1.add(jtfAltura);
      ActionListener - Exemplo cont.
      • p1.add(jlResultado);
      • p1.add(jtfResultado);
      • p1.add(bArea);
      • p1.add(bPerimetro);
      • getContentPane().add(p1);
      • //Início de eventos
      • jtfBase.addActionListener(new ActionListener(){
      • public void actionPerformed(ActionEvent e)
      • {
      • jtfResultado.setText(jtfBase.getText());
      • }
      • });
      • jtfAltura.addMouseListener(new MouseAdapter(){
      • public void mouseClicked(MouseEvent e)
      • {
      • jtfResultado.setText(jtfBase.getText());
      • }
      • });
      ActionListener - Exemplo cont.
      • bArea.addActionListener(new ActionListener(){
      • public void actionPerformed(ActionEvent e)
      • {
      • jtfResultado.setText(String.valueOf(
      • Integer.parseInt(jtfBase.getText())*
      • Integer.parseInt(jtfAltura.getText())));
      • }
      • });
      • bPerimetro.addActionListener(new ActionListener(){
      • public void actionPerformed(ActionEvent e)
      • {
      • jtfResultado.setText(String.valueOf(2*
      • (Integer.parseInt(jtfBase.getText()))+ 2*(Integer.parseInt(jtfAltura.getText()))));
      • }
      • });
      ActionListener - Exemplo cont.
      • jmiSair.addActionListener(new ActionListener() {
      • public void actionPerformed( ActionEvent e )
      • {
      • System.exit( 0 );
      • }
      • }
      • );
      • //Fim de eventos
      • }
      • public static void main(String args[]) {
      • ActionListenerDemo j = new ActionListenerDemo();
      • j.setTitle("Eventos");
      • j.pack();
      • j.setVisible(true);
      • }
      • }
      ActionListener - Exemplo cont.
    • Exercício
      • Faça um programa em Java que implemente uma calculadora.
    • Bibliografia
        • FURGERI, Sérgio. Java 2: Ensino didático: Desenvolvendo e Implementando Aplicações –
        • São Paulo: Érica, 372p. 2002.
        • TAMASSIA, R.; GOODRICH, M.T. Estrutura de Dados e Algoritmos em Java. Bookman, 2002.
        • DEITEL,H.M.; DEITEL, P.J. Java: Como Programar , Bookman, 2002.