zoukankan      html  css  js  c++  java
  • Java添加事件的几种方式(转载了codebrother的文章)

    /**
     * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器
     *
     * @author codebrother
     */
    class EventListener1 extends JFrame implements ActionListener {
      private JButton btBlue, btDialog;
    
      public EventListener1() {
        setTitle("Java GUI 事件监听处理");
        setBounds(100, 100, 500, 350);
        setLayout(new FlowLayout());
        btBlue = new JButton("蓝色");   
        btDialog = new JButton("弹窗");
        
        // 将按钮添加事件监听器
        btBlue.addActionListener(this);
        btDialog.addActionListener(this);
    
        add(btBlue);
        add(btDialog);
    
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
      // ***************************事件处理***************************
      @Override
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == btBlue) {
          Container c = getContentPane();
          c.setBackground(Color.BLUE);
        }
        else if (e.getSource() == btDialog) {
          JDialog dialog = new JDialog();
          dialog.setBounds(300, 200, 400, 300);
          dialog.setVisible(true);
        }
      }
    
    }
    
    /**
     * Java事件监听处理——内部类处理
     *
     * @author codebrother
     */
    
    class EventListener3 extends JFrame {
      private JButton btBlue, btDialog;
    
      // 构造方法
      public EventListener3() {
        setTitle("Java GUI 事件监听处理");
        setBounds(100, 100, 500, 350);
        setLayout(new FlowLayout());
        btBlue = new JButton("蓝色");
        btDialog = new JButton("弹窗");
        // 添加事件监听器对象(面向对象思想)
        btBlue.addActionListener(new ColorEventListener());
        btDialog.addActionListener(new DialogEventListener());
    
        add(btBlue);
        add(btDialog);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
      // 内部类ColorEventListener,实现ActionListener接口
      class ColorEventListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
          Container c = getContentPane();
          c.setBackground(Color.BLUE);
        }
      }
      // 内部类DialogEventListener,实现ActionListener接口
      class DialogEventListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
          JDialog dialog = new JDialog();
          dialog.setBounds(300, 200, 400, 300);
          dialog.setVisible(true);
        }
      }
    
    }
    
    /**
     * Java事件监听处理——匿名内部类处理
     *
     * @author codebrother
     */
    class EventListener2 extends JFrame {
      private JButton btBlue, btDialog;
    
      public EventListener2() {
        setTitle("Java GUI 事件监听处理");
        setBounds(100, 100, 500, 350);
        setLayout(new FlowLayout());
    
        btBlue = new JButton("蓝色");
        btDialog = new JButton("弹窗");
        
        // 添加事件监听器(此处即为匿名类)
        btBlue.addActionListener(new ActionListener() {
          // 事件处理
          @Override
          public void actionPerformed(ActionEvent e) {
            Container c = getContentPane();
            c.setBackground(Color.BLUE);
          }
        });
        
        // 并添加事件监听器 
        btDialog.addActionListener(new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            JDialog dialog = new JDialog();
            dialog.setBounds(300, 200, 400, 300);
            dialog.setVisible(true);
          }
        });
    
        add(btBlue);
        add(btDialog);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
    
    }
    
    /**
     * Java事件监听处理——外部类处理
     *
     * @author codebrother
     */
    class EventListener4 extends JFrame {
      private JButton btBlue, btDialog;
    
      public EventListener4() {
        setTitle("Java GUI 事件监听处理");
        setBounds(100, 100, 500, 350);
        setLayout(new FlowLayout());
        btBlue = new JButton("蓝色");
        btDialog = new JButton("弹窗");
        // 将按钮添加事件监听器
        btBlue.addActionListener(new ColorEventListener(this));
        btDialog.addActionListener(new DialogEventListener());
    
        add(btBlue);
        add(btDialog);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
    
    }
    // 外部类ColorEventListener,实现ActionListener接口
    class ColorEventListener implements ActionListener {
      private EventListener4 el;
      ColorEventListener(EventListener4 el) {
        this.el = el;
      }
      @Override
      public void actionPerformed(ActionEvent e) {
        Container c = el.getContentPane();
        c.setBackground(Color.BLUE);
      }
    }
    // 外部类DialogEventListener,实现ActionListener接口
    class DialogEventListener implements ActionListener {
      @Override
      public void actionPerformed(ActionEvent e) {
        JDialog dialog = new JDialog();
        dialog.setBounds(300, 200, 400, 300);
        dialog.setVisible(true);
      }
    }
    
    public class ActionListenerTest
    {
      public static void main(String args[])
      {
        new EventListener2();
      }
    }
  • 相关阅读:
    rails中输出excel
    Rails IDE 有很多选择,但是具体到ubuntu 64bit 选择的余地就不多了,这里选择Aptana Studio 3 Beta
    linux中查看系统资源占用情况的命令
    GIT GUI使用
    linux下的c 环境配置vim
    oracle11 忘记密码
    Aptana_Studio 介绍和应用
    linux root命令忘记以及挂载U盘
    程序员创业生死一线 最后归宿在哪里?
    如何使用Log4j? .
  • 原文地址:https://www.cnblogs.com/wxj-106/p/7489905.html
Copyright © 2011-2022 走看看