zoukankan      html  css  js  c++  java
  • Java添加事件的四种方式

    Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动)

      1 /**
      2  * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器
      3  *
      4  * @author codebrother
      5  */
      6 class EventListener1 extends JFrame implements ActionListener {
      7     private JButton btBlue, btDialog;
      8 
      9     public EventListener1() {
     10         setTitle("Java GUI 事件监听处理");
     11         setBounds(100, 100, 500, 350);
     12         setLayout(new FlowLayout());
     13         btBlue = new JButton("蓝色");      
     14         btDialog = new JButton("弹窗");
     15         
     16         // 将按钮添加事件监听器
     17         btBlue.addActionListener(this);
     18         btDialog.addActionListener(this);
     19 
     20         add(btBlue);
     21         add(btDialog);
     22 
     23         setVisible(true);
     24         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     25     }
     26     // ***************************事件处理***************************
     27     @Override
     28     public void actionPerformed(ActionEvent e) {
     29         if (e.getSource() == btBlue) {
     30             Container c = getContentPane();
     31             c.setBackground(Color.BLUE);
     32          }
     33         else if (e.getSource() == btDialog) {
     34             JDialog dialog = new JDialog();
     35             dialog.setBounds(300, 200, 400, 300);
     36             dialog.setVisible(true);
     37         }
     38     }
     39 
     40 }
     41 
     42 /**
     43  * Java事件监听处理——内部类处理
     44  *
     45  * @author codebrother
     46  */
     47 
     48 class EventListener3 extends JFrame {
     49     private JButton btBlue, btDialog;
     50 
     51     // 构造方法
     52     public EventListener3() {
     53         setTitle("Java GUI 事件监听处理");
     54         setBounds(100, 100, 500, 350);
     55         setLayout(new FlowLayout());
     56         btBlue = new JButton("蓝色");
     57         btDialog = new JButton("弹窗");
     58         // 添加事件监听器对象(面向对象思想)
     59         btBlue.addActionListener(new ColorEventListener());
     60         btDialog.addActionListener(new DialogEventListener());
     61 
     62         add(btBlue);
     63         add(btDialog);
     64         setVisible(true);
     65         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     66     }
     67     // 内部类ColorEventListener,实现ActionListener接口
     68     class ColorEventListener implements ActionListener {
     69         @Override
     70         public void actionPerformed(ActionEvent e) {
     71             Container c = getContentPane();
     72             c.setBackground(Color.BLUE);
     73          }
     74     }
     75     // 内部类DialogEventListener,实现ActionListener接口
     76     class DialogEventListener implements ActionListener {
     77         @Override
     78         public void actionPerformed(ActionEvent e) {
     79             JDialog dialog = new JDialog();
     80             dialog.setBounds(300, 200, 400, 300);
     81             dialog.setVisible(true);
     82         }
     83     }
     84 
     85 }
     86 
     87 
     88 
     89 /**
     90  * Java事件监听处理——匿名内部类处理
     91  *
     92  * @author codebrother
     93  */
     94 class EventListener2 extends JFrame {
     95     private JButton btBlue, btDialog;
     96 
     97     public EventListener2() {
     98         setTitle("Java GUI 事件监听处理");
     99         setBounds(100, 100, 500, 350);
    100         setLayout(new FlowLayout());
    101 
    102         btBlue = new JButton("蓝色");
    103         btDialog = new JButton("弹窗");
    104         
    105         // 添加事件监听器(此处即为匿名类)
    106         btBlue.addActionListener(new ActionListener() {
    107             // 事件处理
    108             @Override
    109             public void actionPerformed(ActionEvent e) {
    110                 Container c = getContentPane();
    111                 c.setBackground(Color.BLUE);
    112              }
    113         });
    114         
    115         // 并添加事件监听器   
    116         btDialog.addActionListener(new ActionListener() {
    117             @Override
    118             public void actionPerformed(ActionEvent e) {
    119                 JDialog dialog = new JDialog();
    120                 dialog.setBounds(300, 200, 400, 300);
    121                 dialog.setVisible(true);
    122             }
    123         });
    124 
    125         add(btBlue);
    126         add(btDialog);
    127         setVisible(true);
    128         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    129     }
    130 
    131 }
    132 
    133 /**
    134  * Java事件监听处理——外部类处理
    135  *
    136  * @author codebrother
    137  */
    138 class EventListener4 extends JFrame {
    139     private JButton btBlue, btDialog;
    140 
    141     public EventListener4() {
    142         setTitle("Java GUI 事件监听处理");
    143         setBounds(100, 100, 500, 350);
    144         setLayout(new FlowLayout());
    145         btBlue = new JButton("蓝色");
    146         btDialog = new JButton("弹窗");
    147         // 将按钮添加事件监听器
    148         btBlue.addActionListener(new ColorEventListener(this));
    149         btDialog.addActionListener(new DialogEventListener());
    150 
    151         add(btBlue);
    152         add(btDialog);
    153         setVisible(true);
    154         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    155     }
    156 
    157 }
    158 // 外部类ColorEventListener,实现ActionListener接口
    159 class ColorEventListener implements ActionListener {
    160     private EventListener4 el;
    161     ColorEventListener(EventListener4 el) {
    162         this.el = el;
    163     }
    164     @Override
    165     public void actionPerformed(ActionEvent e) {
    166         Container c = el.getContentPane();
    167         c.setBackground(Color.BLUE);
    168      }
    169 }
    170 // 外部类DialogEventListener,实现ActionListener接口
    171 class DialogEventListener implements ActionListener {
    172     @Override
    173     public void actionPerformed(ActionEvent e) {
    174         JDialog dialog = new JDialog();
    175         dialog.setBounds(300, 200, 400, 300);
    176         dialog.setVisible(true);
    177     }
    178 }
    179 
    180 public class ActionListenerTest
    181 {
    182     public static void main(String args[])
    183     {
    184         new EventListener2();
    185     }
    186 }
  • 相关阅读:
    yii2 批量插入
    yii2 ArrayHelper的19个函数+使用实例+功能详解
    thinkphp phpexcel
    yii2 ActiveForm beforeSubmit用法
    YII2项目常用技能知识总结
    Redis 的 fields 遇到的问题
    spring boot +mybatis+druid 多数据源配置
    简单使用shell 自动打包,发布项目 脚本
    cmpp 短信平台
    mysql workbench 导出表结构
  • 原文地址:https://www.cnblogs.com/mingziday/p/3717954.html
Copyright © 2011-2022 走看看