我有一个 JMenuItem 实例(比如说,TEMP)。我想知道,添加了 TEMP 的 JMenu 的名称是什么。我该怎么做?
问问题
331 次
2 回答
2
您可以尝试以下代码来获取给定 JMenuItem 的 JMenu
JPopupMenu fromParent = (JPopupMenu)menuitem.getParent();
JMenu foo = (JMenu)fromParent.getInvoker();
System.out.println(foo.getName());
于 2011-05-09T06:50:54.580 回答
0
您可以使用以下方法从 JMenuItem 获取 JMenu 的名称:
JPopupMenu popup = new JPopupMenu();
popup.setName("popup");
JMenu jMenu= new JMenu("menu");
jMenu.setName("menu");
JMenuItem menuItem1 = new JMenuItem("sub1");
jMenu.add(menuItem1);
menuItem1.addActionListener(this);
popup.add(jMenu);
……
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem)(e.getSource());
try{
JMenuItem menuItem = (JMenuItem) e.getSource();
JPopupMenu popupMenu = (JPopupMenu) menuItem.getParent();
Component invoker = popupMenu.getInvoker();
// Print name of JMenu
System.out.println("NAME OF JMENU: "+invoker.getName());
JPopupMenu popup = (JPopupMenu) invoker.getParent();
// Print name of JPopupMenu
System.out.println("NAME OF POPMENU: "+popup.getName());
}catch(Exception ex){
ex.printStackTrace();
}
}
于 2015-04-15T06:20:06.397 回答