私は現在、MainFrameいくつかInternalFramesが実行されるで構成されるSwingを使用したデスクトップアプリケーションを作成しています。InternalFrames巨大なクラスが1つになるのを避けるために、それぞれに別々のクラスで記述したいと思いMainFrameます。
今私の問題は、で別のものを開くのでActionListener、MenuItemにを追加したいということです。が表示されますが、MenuItemをクリックしても何も起こりません。コードをInternalFrameの外に置くと、が表示されます。PopupMenuMenuInternalFrameInternalFrameMainFrameMenuInternalFrameActionListener
問題はに何かがあるに違いありませんActionListener。InternalFrame-メソッド内からにアクセスするためのローカルクラスと最後のインスタンスを使用した回避策mouseClickedでしょうか?
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);
問題となる可能性のあるアイデアはありますか?前もって感謝します。