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