首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JMenuItem 实例能否获取到它的父菜单JMenu 实例的引用,请

2012-01-26 
JMenuItem 实例能否获取到它的父菜单JMenu 实例的引用,请高手指点。例子代码及问题如下JMenumenuJMenuBarm

JMenuItem 实例能否获取到它的父菜单JMenu 实例的引用,请高手指点。
例子代码及问题如下
JMenu   menu;
JMenuBar   menuBar   =   new   JMenuBar();
JMenuItem   menuItem;
menu   =   new   JMenu( "文件 ");
menuBar.add(menu);
menuItem   =   menu.add(new   JMenuItem( "新建 "));
menuItem.addActionListener(new   ActionListener()   {
public   void   actionPerformed(ActionEvent   e)   {
//   在这里如何获取menu   的引用
}
});

我想做的时把某个文件夹的内容(文件和文件)导到一个树状菜单中,当点击相应的菜单后打开对应的文件

[解决办法]
不了解,帮忙顶
[解决办法]
getParent()
[解决办法]
// 在任意位置的JMenu通过getParent()得到的类名
// 0javax.swing.JMenu或者JMenuItem(自己)
// 1javax.swing.JPopupMenu
// 2javax.swing.JPanel
// 3javax.swing.JLayeredPane
// 4javax.swing.JRootPane
// 5view.EditFrame

getParent获得的是javax.swing.JPopupMenu,不是它的父菜单JMenu,而是JMenu的JPopupMenu
[解决办法]
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 在这里如何获取menu 的引用
}
});
这个是匿名类的写法 你可以参照JBuilder里的写法 写一个实现ActionListener接口的类
[解决办法]
JMenu menu;
JMenuBar menuBar = new JMenuBar();
JMenuItem menuItem;
menu = new JMenu( "文件 ");
menuBar.add(menu);
menuItem = menu.add(new JMenuItem( "新建 "));
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 在这里如何获取menu 的引用
menu.doSomething(); //直接用
}
});
或者
class MenuItemActionListener implements ActionListener {
private Menu menu;
public MenuItemActionListener(Menu menu) {
this.menu = menu;
}
public void actionPerformed(ActionEvent e) {
// 在这里如何获取menu 的引用
menu.doSomething(); //直接用
}
}
menu = new JMenu( "文件 ");
menuBar.add(menu);
menuItem = menu.add(new JMenuItem( "新建 "));
menuItem.addActionListener(new MenuItemActionListener(menu));

热点排行