在 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);
我正在尝试使用 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);