Java Menu getLabel()怎么实现?
关注:141 答案:2 mip版
解决时间 2021-01-30 21:33
提问者失夜久伴你
2021-01-30 00:58
层次结构如下:
Menu001
Menu002
MenuItem01
MenuItem01
MenuItem01
想同时获得Menu002和某个MenuItem的Label,该怎么写这样一个监听器啊??
(比如说鼠标经过的时候调用 Menu002.getLabel();鼠标单击的时候调用MenuItem01.getLabel())
补充:
如图所示,写个监听器实现红框框里的功能。
最佳答案
二级知识专家百合的盛世恋
2021-01-30 01:28
这次总该对了吧,呵呵
public class TestFrame extends JFrame{
private String text;
public static void main(String[] args) {
TestFrame f = new TestFrame();
f.setSize(200, 200);
f.setVisible(true);
}
public TestFrame() {
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("T");
JMenu menu1 = new JMenu("B");
JMenuItem item = new JMenuItem("C");
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JMenuItem i = (JMenuItem) e.getSource();
System.out.println(text+" "+i.getText());
}
});
menu1.addMenuListener(new MenuListener() {
public void menuSelected(MenuEvent e) {
text = ((JMenuItem) e.getSource()).getText();
}
public void menuCanceled(MenuEvent e) {
}
public void menuDeselected(MenuEvent e) {
}
});
menu1.add(item);
menu.add(menu1);
bar.add(menu);
this.setJMenuBar(bar);
}
}
全部回答
1楼相忘于江湖
2021-01-30 03:05
快捷键当然是有的,只不过你这样定义菜单,系统对快捷键作出反应你没法看到而已。
试试下面的两种做法:
给你的菜单设置回调函数,例如
h_menu = uimenu(gcf,'label','&color','call','uisetcolor');
创建子菜单,例如
h_menu = uimenu(gcf,'label','&color');
uimenu(h_menu,'label','&set color','call','uisetcolor');
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看