「java菜单事件处理」组件与事件处理java
今天给各位分享java菜单事件处理的知识,其中也会对组件与事件处理java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java的菜单响应事件要怎么写
有点没看明白。。。。
菜单的事件监听和按钮是一样的,按钮怎么写菜单项就怎么写。
另外我看第一个截图,你的菜单添加事件监听是用内部类这样的写法,那和第二张图片里的implements ActionListener没有什么关系呀?!另外当点击菜单以后会新建一个ShowAllStudents对象,因为这个类继承JFrame,可能在构造方法里有setVisible(true);所以会显示出来,这是从没有JFrame对象到创建JFrame对象的过程,如果你JFrame已经有了的话就直接setVisible()就可以控制那个JFrame是否显示了。
还有就是在actionPerformed()方法里用e.getSource()可以获取消息源,你如果想知道是不是queryAllMenu被点击的话可以在actionPerformed()里加if(e.getSource == queryAllMenu),不过因为它们可能是在2个不同的类里,所以写actionPerformed()的类不一定能看到queryAllMenu,这就自己想办法吧,你可以一个类里有另外一个类的引用,或者((JMenuItem)e.getSource()).getText().equals(XXXX).....
额。。。追问吧。。。。。
浅析Java语言的事件处理快捷回复
在JAVA程序设计中 事件的处理是非常重要的 尤其是在需要自定义事件和设计JavaBean时 对事件的处理过程有一个完整的认识对于编程是很有帮助的
下面用一个演示性的例子来说明事件及其处理过程
一 事件的组成
如果想要自定义一个事件 则必须提供一个事件的监听接口以及一个事件类 在JAVA中监听接口继承java util EventListener 事件类继承java util EventObject 很多基本的事件在编程环境中都已经提供可以很方便使用 但是在自定义事件中必须要要了解这些
下面是一个事件类的代码 事件类可以向用户处理程序提供被监听类的信息
import java util *;
public class PropertyEvent extends EventObject {
public PropertyEvent(){}
}
下面是监听接口的代码
import java util *;
public interface PropertyListener extends EventListener {
public void propertyChanged(PropertyEvent propertyEvent);
}
二 事件的处理机制
下面是一段简要的被监听类代码 通过代码分析事件处理过程
import java util *;
public class Exam {
private int property;
//listeners用来存放已注册的监听对象
private Set listeners= new HashSet();
public void addListener(PropertyListener propertyListener){
//listeners必须保证只能被一个线程访问
synchronized(listeners){
listeners add(propertyListener);
}
}
public void firePropertyChange(){
Iterator iterator;
synchronized(listeners){
//将listeners中的类名放到iterator
iterator = new HashSet(erator();
}
//创建事件类
PropertyEvent propertyEvent = new PropertyEvent();
while(iterator hasNext()){
PropertyListener propertyListener = (propertyListener) iterator next();
//调用用户的事件处理程序
propertyListener propertyChanged(propertyEvent);
}
}
}
当属性值发生变化时 首先进行内部处理调用firePropertyChange方法 产生一个事件对象然后用事件对象为参数来调用用户的事件处理程序
三 事件处理的使用
基本用法
public Exam exam;
exam addListener(this);
public void propertyChange(PropertyEvent event){ }
注 exam是被监听对象 this为监听对象 是已经实现了接口方法的当前类 addListener
将当前类注册到listeners
一个被监听对象可以有多个监听对象
exam addListener(listener );
exam addListener(listener );
这样当exam的property发生变化时 actionListener 和actionListener 的处理程序都会
被调用 当然listener 和listener 必须都是已实现接口方法的类
被监听的对象也可以是实现了方法的接口
exam addListener(
new PropertyListener(){
//用户定义事件处理过程
public void propertyChange(PropertyEvent event){
}
);
lishixinzhi/Article/program/Java/hx/201311/26740
Java事件处理,怎么在点击菜单项的时候会弹出一个窗口?
这个简单啊。
1.给要打开对话框的菜单加动作事件addActionListener()
2.要有一个对话框类(一般都是自定义的对话框,像窗体派生JFRame一样,对话框一般都派生JDialog)
2.在actionPerformaned()里写上大概这样的代码就行:
XXXDialog d=new XXXDialog(XXXXXXXX);
d.setVisible(true);
就行了。
至于对话框里的内容,那是XXXDialog的事了。
java菜单条点击事件
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyMenu extends JFrame{
JMenuBar jmbar=new JMenuBar();
JMenu jmenu=new JMenu("颜色");
JMenuItem jmt1=new JMenuItem("红色"),
jmt2=new JMenuItem("黄色"),
jmt3=new JMenuItem("蓝色");
JPanel jp=new JPanel();
MyMenu(){
setTitle("菜单测试");
setSize(400,300);
setJMenuBar(jmbar);
jmbar.add(jmenu);
jmenu.add(jmt1);
jmenu.add(jmt2);
jmenu.add(jmt3);
add(jp);
jmt1.addActionListener(new MenuAction(this));
jmt2.addActionListener(new MenuAction(this));
jmt3.addActionListener(new MenuAction(this));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyMenu();
}
}
class MenuAction implements ActionListener{
MyMenu m;
MenuAction(MyMenu m){
this.m=m;
}
public void actionPerformed(ActionEvent e){
String color=e.getActionCommand();
if(color=="红色")m.jp.setBackground(Color.red);
else if(color=="黄色")m.jp.setBackground(Color.yellow);
else if(color=="蓝色")m.jp.setBackground(Color.blue);
}
}
java菜单事件处理的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于组件与事件处理java、java菜单事件处理的信息别忘了在本站进行查找喔。