加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Java添加事件的四种办法

发布时间:2021-11-20 13:17:59 所属栏目:PHP教程 来源:互联网
导读:Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理自身类实现ActionListener接口,作为事件监听器 * * @author codebrother */ class EventListener1 extends JFrame implements ActionListener { private JButton
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();
    }
}

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读