0

JFrame内にJMenuとJPanelがあります

セットアップ コード:

public Gui(String title) {
    super(title);

    createGUIComponents();
    pack();

    this.setBackground(Color.WHITE);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);

    this.setResizable(true);
    this.setMinimumSize(new Dimension(180, 100));
    this.setSize(new Dimension(800, 600));

    this.setVisible(true);
}

private void createGUIComponents() {
    Container c = this.getContentPane();

    JPanel panel = new SpecialJPanel();

    JMenuBar menu = new JMenuBar();
    fileMenu = new JMenu("File", false);
    fileMenu.add("New");
    fileMenu.add("Open");
    fileMenu.add("Save");
    fileMenu.add("Save As");

    c.add(panel, "Center");
    c.add(menu, "Center");
}

JMenuBar の [ファイル] メニュー ボタンをクリックしても、何も表示されません。常に更新されている JPanel によってブロックされていると思います。これを修正する方法はありますか?

4

2 に答える 2

2

menuBar にメニューを追加していないので、次の行を追加します。

menu.add(fileMenu);


また、代わりc.add(menu)に を使用する必要があります

setJMenuBar(menu);
于 2013-04-29T01:20:00.673 に答える
1
  1. a の標準的なレイアウトJFrameBorderLayout
  2. BorderLayoutは、それぞれ1つのコンポーネントを受け入れることができる 5 つの領域を提供します。

したがって、コードは次のようになります。

c.add(panel, "Center");
c.add(menu, "Center");

実際には、次のように読む必要があります。

c.add(panel, BorderLayout.CENTER); // Don't use magic numbers!
c.add(menu, BorderLayout.PAGE_START);

そうは言っても、@CoderTitan による回答で詳しく説明されているJFramea を表示するより良い方法があります。JMenuBar

于 2013-04-29T03:12:15.623 に答える