为什么在java每个按钮触发的都是一样的事件,怎么解决
我写的一个程序,里面的多个按键按下之后,都是触发了同一个事件,请大家帮我解决,谢谢这里是按键的代码部分:JMenuItemfile1=newJMenuItem("新建")...
我写的一个程序,里面的多个按键按下之后,都是触发了同一个事件,请大家帮我解决,谢谢
这里是按键的代码部分:
JMenuItem file1=new JMenuItem("新建");
JMenuItem file2=new JMenuItem("打开");
JMenuItem file3=new JMenuItem("保存");
JMenuItem file4=new JMenuItem("另存为");
JMenuItem file5=new JMenuItem("退出");
JMenuItem edit1=new JMenuItem("剪切");
JMenuItem edit2=new JMenuItem("复制");
JMenuItem edit3=new JMenuItem("黏贴");
JMenuItem o1=new JMenuItem("字体");
JMenuItem help1=new JMenuItem("关于记事本");
file1.addActionListener(this);
file2.addActionListener(this);
file3.addActionListener(this);
file3.addActionListener(this);
file4.addActionListener(this);
file5.addActionListener(this);
edit1.addActionListener(this);
edit2.addActionListener(this);
edit3.addActionListener(this);
o1.addActionListener(this);
help1.addActionListener(this);
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("新建"));
...
... 展开
这里是按键的代码部分:
JMenuItem file1=new JMenuItem("新建");
JMenuItem file2=new JMenuItem("打开");
JMenuItem file3=new JMenuItem("保存");
JMenuItem file4=new JMenuItem("另存为");
JMenuItem file5=new JMenuItem("退出");
JMenuItem edit1=new JMenuItem("剪切");
JMenuItem edit2=new JMenuItem("复制");
JMenuItem edit3=new JMenuItem("黏贴");
JMenuItem o1=new JMenuItem("字体");
JMenuItem help1=new JMenuItem("关于记事本");
file1.addActionListener(this);
file2.addActionListener(this);
file3.addActionListener(this);
file3.addActionListener(this);
file4.addActionListener(this);
file5.addActionListener(this);
edit1.addActionListener(this);
edit2.addActionListener(this);
edit3.addActionListener(this);
o1.addActionListener(this);
help1.addActionListener(this);
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("新建"));
...
... 展开
展开全部
一个小例子(选摘):
public void actionPerformed(ActionEvent e) {
String arg=e.getActionCommand();
//添加照片
if(arg.equals("添加照片")){
myAddPhotoDialog.showDialog(this);
}
//修改照片信息
if(arg.equals("修改照片信息")){
myModifyPhotoInfDialog.showDialog(this);
}
//删除照片
if(arg.equals("删除照片")){
myRemovePhotoDialog.showDialog(this);
}
//按照片标题排序
if(arg.equals("按照片标题搜索")){
mySearchPhotoDialog.showDialog(this);
}
}
public void actionPerformed(ActionEvent e) {
String arg=e.getActionCommand();
//添加照片
if(arg.equals("添加照片")){
myAddPhotoDialog.showDialog(this);
}
//修改照片信息
if(arg.equals("修改照片信息")){
myModifyPhotoInfDialog.showDialog(this);
}
//删除照片
if(arg.equals("删除照片")){
myRemovePhotoDialog.showDialog(this);
}
//按照片标题排序
if(arg.equals("按照片标题搜索")){
mySearchPhotoDialog.showDialog(this);
}
}
展开全部
每一个按键添加不同的事件监听器啊,如下面写的用匿名内部类来实现即可
file1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.out.println("新建");
。。。
}
});
file2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.out.println("打开");
。。。
}
});
。。。
这里就不一一举例了。。
file1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.out.println("新建");
。。。
}
});
file2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.out.println("打开");
。。。
}
});
。。。
这里就不一一举例了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
if(e.getActionCommand().equals("新建"));
打印一下e.getActionCommand()吧
System.out.println(e.getActionCommand());
if(e.getActionCommand().equals("新建"));
打印一下e.getActionCommand()吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1楼的是另外实现按钮接口,用getActionCommand()拿到点按钮时的字符串,然后用equals比较字符串来判断分开执行什么,这个比较好理解啦,3楼用的是匿名类的办法直接就在添加按钮的时候就实现了按钮接口,这个办法不用另外实现接口了.这个办法比较难理解.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询