Java添加事件监听的四种方法代码实例

网友投稿 324 2023-08-07


Java添加事件监听的四种方法代码实例

/**

* 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("蓝色");

btDiahttp://log = new JButton("弹窗");

// 将按钮添加事件监听器

btBlue.addActionListener(this);

btDialog.addActionListener(this);

add(btBlue);

add(btDialog);

setVisible(true);

setDefaultCloseOperatcQuBsqSpoZion(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);

http:// }

}

public class ActionListenerTest

{

public static void main(String args[])

{

new EventListener2();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java及C++中传值传递、引用传递和指针方式的理解
下一篇:Java基于Runtime调用外部程序出现阻塞的解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~