我正和一些人一起为课堂上的项目设计游戏。在制作主菜单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);
答案 0 :(得分:2)
BorderLayout
开始。JPanel
或GridLayout
的{{1}}添加到父容器的GridBagLayout
位置,此面板将用于布局BorderLayout.WEST
JPanel
添加到第一个容器的CardLayout
位置。这将允许您根据用户的选择在视图之间切换。BorderLayout.CENTER
,它就是按钮操作的代理,并通过ActionListener
的{{1}}属性提供有关操作菜单的信息。和actionCommand
有关详细信息,请查看How to Use Buttons, Check Boxes, and Radio Buttons和Laying Out Components Within a Container