我目前正在编写一个带有 Swing 的桌面应用程序,其中包含MainFrame
几个InternalFrames
将运行的。我想InternalFrames
为每个类编写单独的类,以避免拥有一个巨大的MainFrame
类。
现在我的问题是我想将一个添加ActionListener
到 aMenuItem
中的 aPopupMenu
中,MenuInternalFrame
从而InternalFrame
在MainFrame
. 出现MenuInternalFrame
,但是当我单击 MenuItem 时没有任何反应。当我将代码放在ActionListener
InternalFrame 之外时出现。
问题一定出在ActionListener
. InternalFrame
这可能是我使用本地类和从mouseClicked
-Method中访问的最终实例的解决方法吗?
以下是来自MainFrame
-Constructor 的代码的相关部分:
class InternalFrames {
TestInternalFrame test = new TestInternalFrame();
JDesktopPane desktopPane = new JDesktopPane();
}
final InternalFrames internalFrames = new InternalFrames();
internalFrames.desktopPane.setBackground(Color.WHITE);
Menu menu = new Menu();
menu.getMntmTestMenuItem().addMouseListener( new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
internalFrames.desktopPane.add(internalFrames.test);
internalFrames.test.setVisible(true);
}
});
internalFrames.desktopPane.add(menu);
menu.setVisible(true);
任何想法可能是什么问题?提前致谢。