JMenuBarのサブクラスをユーザーインターフェイスに追加しようとしていますが、何らかの理由で表示されません。JFrame.setJMenubar()とJFrame.add()を使用してみましたが、SwingUtilities.invokeLater()呼び出しなどから追加しようとしました...サブクラスではなくJMenuBar自体を使用している場合でも機能するので、疑わしいです。それはそれと関係があります。
これは、アプリケーションウィンドウを初期化するコードです。
public DramaSimWindow() {
initializeSelf();
initializeContainers();
this.setVisible(true);
}
private void initializeSelf() {
initializeContentPane();
this.setBounds(100, 100, 800, 500);
this.setJMenuBar(new DramaSimMenuBar());
this.setResizable(false);
}
これは、メインウィンドウクラス内にプライベートクラスとして配置されているJMenuBarのサブクラスです。
private class DramaSimMenuBar extends JMenuBar {
private static final long serialVersionUID = 1L;
public DramaSimMenuBar() {
initializeSelf();
}
private void initializeSelf() {
menuBar = new JMenuBar();
initializeFileMenu();
initializeEditMenu();
}
private void initializeFileMenu() {
JMenu fileMenu = new JMenu("File");
fileMenu.add(new JMenuItem("New"));
fileMenu.add(new JMenuItem("Open"));
fileMenu.add(new JMenuItem("Save"));
fileMenu.add(new JMenuItem("Save as"));
fileMenu.add(new JMenuItem("Exit"));
menuBar.add(fileMenu);
}
private void initializeEditMenu() {
JMenu editMenu = new JMenu("Edit");
editMenu.add(new JMenuItem("Copy"));
editMenu.add(new JMenuItem("Cut"));
editMenu.add(new JMenuItem("Paste"));
menuBar.add(editMenu);
}
}