在 JFrame 中使用 BoxLayout

Using BoxLayout in JFrame

我正在尝试使用 JFrame 和 BoxLayout 来实现类似于所示的 GUI,但我不确定如何将停止和播放按钮居中。有什么建议吗?

这是我的代码:

JFrame frame = new JFrame();

    Box box = Box.createHorizontalBox();
    box = Box.createHorizontalBox();
    box.add(new JButton("Play"));
    box.add(new JButton("Stop"));
    box.add(Box.createHorizontalGlue());
    frame.add(box, BorderLayout.SOUTH);

    frame.setSize(500, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setVisible(true); 

我还没有在文本框和加载按钮中编码,因为我还没有弄清楚居中。

为按钮创建一个单独的面板。使用水平胶水,您可以将按钮居中。

JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));

buttonPanel.add(Box.createHorizontalGlue());

buttonPanel.add(new JButton("Play"));
buttonPanel.add(new JButton("Stop"));

buttonPanel.add(Box.createHorizontalGlue());

frame.add(buttonPanel, BorderLayout.SOUTH);

您也可以使用 FlowLayout 轻松做到这一点

JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

buttonPanel.add(new JButton("Play"));
buttonPanel.add(new JButton("Stop"));

frame.add(buttonPanel, BorderLayout.SOUTH);