javamenu单击事件_Java使⽤Swing框架实现JMenu的点击事
件响应(低配版)
Java使⽤Swing框架实现JMenu的点击事件响应(低配版)
Java使⽤Swing框架实现JMenu的点击事件响应(低配版)
今天查了很久,因为Jmenu不像JLabel有直接的MouseListener。最后我⽤了⼀个笨⽅法。如果⼤家有更好的⽅法欢迎交流~
实现功能:⿏标移⾄JMenu的按钮,按钮选中事件触发。
实际上javax.swing.event.MenuListener,有三个抽象函数:
函数名称
⽤途
public void menuSelected(MenuEvent e)
当此菜单项被选中,触发这个函数。
public void menuDeselected(MenuEvent e)
当此菜单项从被选中的状态转换到未选中的状态(⿏标发⽣移动,移开了此区域),触发这个函数。
public void menuCanceled(MenuEvent e)
当菜单项被取消,触发该事件。⼀般不会调⽤,视情况⽽定吧。
效果图:
我通过分别在menuSelected()和menuDeselected()中打印值,来确定菜单项的选中。
我依次从左到右移动⿏标。
核⼼代码:
menu6.addMenuListener(new MenuListener() {
public void menuSelected(MenuEvent e) {
MovieView d = new MovieView();
}
public void menuDeselected(MenuEvent e) {
System.out.println("menu6");
}
public void menuCanceled(MenuEvent e) {
System.out.println("menu6");
}
});
全部代码:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
public class HomePage extends JFrame{
JMenuBar menubar;
JMenu menu1,menu2,menu3;
public HomePage(){}
public HomePage(String s,int x,int y,int w,int h) {
init(s);
// 设置窗体位置在屏幕中央
setLocationRelativeTo(null);
setLocation(x,y);
setSize(w,h);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }
void init(String s){
setTitle(s); //设置窗⼝的标题
menubar=new JMenuBar();
menu1=new JMenu("电影资讯");
menu2=new JMenu("订票详情");
menu3=new JMenu("退改订票");
menubar.add(menu1);
menubar.add(menu2);
javaswing实现购买
menubar.add(menu3);
setJMenuBar(menubar);
menu1.addMenuListener(new MenuListener() {
public void menuSelected(MenuEvent e) { System.out.println("menu1 选中");
MovieView d = new MovieView();
}
public void menuDeselected(MenuEvent e) { System.out.println("menu1未选中");
}
public void menuCanceled(MenuEvent e) { System.out.println("menu1");
}
});
menu2.addMenuListener(new MenuListener() { public void menuSelected(MenuEvent e) { System.out.println("menu2选中");
}
public void menuDeselected(MenuEvent e) { System.out.println("menu2未选中");
}
public void menuCanceled(MenuEvent e) { System.out.println("menu2");
}
});
menu3.addMenuListener(new MenuListener() { public void menuSelected(MenuEvent e) { System.out.println("menu3选中");
}
public void menuDeselected(MenuEvent e) { System.out.println("menu3未选中");
}
public void menuCanceled(MenuEvent e) { System.out.println("menu3");
}
});
}
}
Java使⽤Swing框架实现JMenu的点击事件响应(低配版)相关教程