Java 我有一个JMenuItem的实例(比如说TEMP)。我想知道,添加了临时参数的JMenu的名称是什么。怎么用?
我有一个JMenuItem的实例(比如说TEMP)。我想知道,添加了临时参数的JMenu的名称是什么。我应该怎么做?您可以尝试以下代码来获取给定JMenuItem的JMenuJava 我有一个JMenuItem的实例(比如说TEMP)。我想知道,添加了临时参数的JMenu的名称是什么。怎么用?,java,swing,jmenu,Java,Swing,Jmenu,我有一个JMenuItem的实例(比如说TEMP)。我想知道,添加了临时参数的JMenu的名称是什么。我应该怎么做?您可以尝试以下代码来获取给定JMenuItem的JMenu JPopupMenu fromParent = (JPopupMenu)menuitem.getParent(); JMenu foo = (JMenu)fromParent.getInvoker(); System.out.println(foo.getName()); 您可以使用以下方法从JMenuIte
JPopupMenu fromParent = (JPopupMenu)menuitem.getParent();
JMenu foo = (JMenu)fromParent.getInvoker();
System.out.println(foo.getName());
您可以使用以下方法从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);
你为什么想得到这些信息?难道你不知道你要将项添加到哪个菜单中吗?事实上,不知道。我有一个递归程序,它根据非常量文件系统将jmenuitems添加到jmenus,所以我的程序永远无法判断递归函数内部发生了什么。。。有什么想法吗Smaybe添加jmenuitem的每个实例及其到jmap的路径就可以了吗?jpopmpmenu是一个组件,您可以在TextEditor的线程“main”java.lang.NullPointerException中看到所有JMenuItemsException。TextEditor的GetParentOfJMenuItem(main.java:201)(main.java:122)在main.main(main.java:29)中看到所有JMenuItemsException编译器就是这么说的。JMenuItem redoChangesItem=new JMenuItem(“ცვლილებების აღდგენა"); JPopupMenu fromParent=(JPopupMenu)redoChangesItem.getParent();JMenu foo=(JMenu)fromParent.getInvoker();System.out.println(foo.getName());@Nika:难怪你会得到一个NPE-redoChangesItem还没有添加到任何菜单中,因此没有父菜单
@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();
}
}