Java 在JFrame中使用BoxLayout

Java 在JFrame中使用BoxLayout,java,swing,jframe,layout-manager,boxlayout,Java,Swing,Jframe,Layout Manager,Boxlayout,我试图使用JFrame和BoxLayout来实现一个类似于图中所示的GUI,但我不知道如何将停止和播放按钮居中。有什么建议吗 这是我的密码: JFrame frame = new JFrame(); Box box = Box.createHorizontalBox(); box = Box.createHorizontalBox(); box.add(new JButton("Play")); box.add(new JButton("Stop"));

我试图使用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);

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

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);