您的位置:首页 > 编程语言 > Java开发

一个Java写的自定义的事件监听器例子

2015-04-30 16:25 309 查看
这几天我正在学Java编程,所以自己做了一个小程序,是关于事件监听器的。虽然没有那些程序员、工程师做的好,但经过一番努力和思考,总会有进步的。此程序如果有不足之处,还希望各位朋友们多多指点。下面是程序的源代码:

测试类

package com.事件监听器例子1;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Demo extends JFrame{
private static final long serialVersionUID = 1L;

public Demo(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300,200);
this.setTitle("Demo");

final MyObject b1=new MyObject();
final JTextField tf=new JTextField(20);
b1.setText("start");
b1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
b1.LetEvent(tf.getText());
}
});

b1.addMyEventListener(new MyEventListener(){
@Override
public void addMyEventListener(MyEventObject obj) {
JOptionPane.showMessageDialog(null, "发生自定义事件");
}
});

JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.add(b1);
p2.add(tf);
add(p1,BorderLayout.SOUTH);
add(p2,BorderLayout.NORTH);

setVisible(true);
}

public static void main(String[] args) {
new Demo();

}

}


事件监听接口

package com.事件监听器例子1;

public interface MyEventListener {
void addMyEventListener(MyEventObject obj);
}


事件对象接口

package com.事件监听器例子1;

public interface MyEventObject {
Object getEventSource();
}

具体事件对象类

package com.事件监听器例子1;

import java.util.HashSet;
import java.util.Set;

import javax.swing.JButton;

public class MyObject extends JButton implements MyEventObject{
private static final long serialVersionUID = 1L;
private Set<MyEventListener> listeners;
public MyObject(){
listeners=new HashSet<MyEventListener>();
}

public void addMyEventListener(MyEventListener e){
if(e!=null)
listeners.add(e);
}

public void LetEvent(String s){
for(MyEventListener mm:listeners)
mm.addMyEventListener(this);
this.setText(s);
}

@Override
public Object getEventSource() {
return this;
}

}


程序运行后显示一个窗口,上面有一个按钮和文本框,单击按钮后你会发现,按钮的文本变为文本框内输入的内容。
程序运行结果如下图所示:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序员 java 编程