如何在Java中进行主菜单布局?

时间:2014-05-19 23:55:04

标签: java swing layout

我正和一些人一起为课堂上的项目设计游戏。在制作主菜单GUI时,我搜索了一些方法来获得我想要的设计(here),但我无法弄明白。 CardLayout,BoxLayout,BorderLayout,GridLayout,这些都没有帮助我正在尝试做什么,至少不是我实现每个布局的方式。是否有其他布局可以帮助我将标题文本和4个按钮对齐到左侧(水平)并垂直对齐。是否可以使用GridLayout可能有5行3列,只填充第2和第3列什么都没有?我还希望在每个对象之间和窗口的边界之间有足够的填充。

这是我到目前为止所做的,但这会扩展整个窗口中所有按钮的宽度:

    JLabel title = new JLabel("Inkball", JLabel.LEFT);
    JPanel panel = new JPanel();
    panel.setLayout(new GridLayout(5, 3, 0, 25));
    panel.add(title);
    panel.add(playNow);
    panel.add(highScore);
    panel.add(rules);
    panel.add(exitGame);
    Container c = this.getContentPane();
    c.add(panel, BorderLayout.CENTER);

1 个答案:

答案 0 :(得分:2)

  • BorderLayout开始。
  • 为此,将使用JPanelGridLayout的{​​{1}}添加到父容器的GridBagLayout位置,此面板将用于布局
  • 选项
  • BorderLayout.WEST JPanel添加到第一个容器的CardLayout位置。这将允许您根据用户的选择在视图之间切换。
  • 您需要能够从“菜单窗格”获取有关用户选择的通知,并更新“视图窗格”。您只需使用注册到“菜单窗格”的BorderLayout.CENTER,它就是按钮操作的代理,并通过ActionListener的{​​{1}}属性提供有关操作菜单的信息。和actionCommand

有关详细信息,请查看How to Use Buttons, Check Boxes, and Radio ButtonsLaying Out Components Within a Container