有这样一段代码:
JPopupMenu pop = new JPopupMenu();
JMenu menu = new JMenu("memu");
JMenuItem item = new JMenuItem("item");
pop.setName("pop");
menu.add(item);
pop.add(menu); 当item被点击时:
JMenuItem item = (JMenuItem) evt.getSource();
JPopupMenu pop2= (JPopupMenu) item.getParent();
System.out.println("popName: "+pop2.getName()); 输出结果:
popName: null 有什么办法可以通过JMenuItem 获得JPopupMenu 的name?
JPopupMenu pop = new JPopupMenu();
JMenu menu = new JMenu("memu");
JMenuItem item = new JMenuItem("item");
pop.setName("pop");
menu.add(item);
pop.add(menu); 当item被点击时:
JMenuItem item = (JMenuItem) evt.getSource();
JPopupMenu pop2= (JPopupMenu) item.getParent();
System.out.println("popName: "+pop2.getName()); 输出结果:
popName: null 有什么办法可以通过JMenuItem 获得JPopupMenu 的name?
解决方案 »
- 包的概念
- 把一个文件的每个字节全部变成字节0,出问题了SOS
- java.math.BigInteger
- class file has wrong version 49.0, should be 48.0
- 第一次 发问 请教一个小问题 finally 和 return
- 求一个基于http的文件传输工具,500分
- 如何将数据库数据转换成树形结构
- Jdbc问题求教,谢谢
- 请问"回调"到底是怎么一回事。能不能举例说明小弟实在不明白,谢谢
- 如何根据<select>的选择改变button的value和enable??<javascript>
- TOMCAT中文路径问题,谢谢
- 程序提示有NullPointerException异常,,不知怎么排错
楼主【xunshu】截止到2008-07-03 11:23:34的历史汇总数据(不包括此帖):
发帖的总数量:13 发帖的总分数:290
结贴的总数量:8 结贴的总分数:250
无满意结贴数:1 无满意结贴分:90
未结的帖子数:5 未结的总分数:40
结贴的百分比:61.54 % 结分的百分比:86.21 %
无满意结贴率:12.50 % 无满意结分率:36.00 %
楼主加油
如果执行System.out.println(item.getParent());输出:
javax.swing.JPopupMenu[,0,0,55x62,layout=javax.swing.plaf.basic.DefaultMenuLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.metal.MetalBorders$PopupMenuBorder@922804,flags=264,maximumSize=,minimumSize=,preferredSize=,desiredLocationX=140,desiredLocationY=371,label=,lightWeightPopupEnabled=true,margin=,paintBorder=true]
boolean f = pop2 == pop;
System.out.println(f);
输出结果是false,它们根本不是同一个对象
item.setComponentPopupMenu(popupMenu);点击时的第二行改为
JPopupMenu pop2 = item.getComponentPopupMenu();