一个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; } }
程序运行后显示一个窗口,上面有一个按钮和文本框,单击按钮后你会发现,按钮的文本变为文本框内输入的内容。
程序运行结果如下图所示:
相关文章推荐
- 一个使用自定义命名空间的Schema文件,xml文件和castor生成的java代码的例子
- java自定义异常的一个例子
- 【转】JAVA用户自定义事件监听完整例子- ---sunfruit
- JAVA用户自定义事件监听完整例子
- 一个简单的自定义事件的例子
- QT自定义事件的一个例子
- Java中的事件、监听器的简单例子
- JAVA用户自定义事件监听完整例子
- Java中的事件、监听器的简单例子
- JAVA用户自定义事件监听完整例子
- JAVA自定义事件监听完整例子---sunfruit[转]
- JAVA用户自定义事件监听完整例子
- java实现在一个类中放置监听器,在另一个类中事件
- Android中自定义一个事件监听器
- JAVA用户自定义事件监听完整例子
- java 反射的一个例子
- java组装json和提取一个json的例子
- 一个经典的例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子