(说)我创建了一个带有三个按钮的 JPanel。我想按如下方式放置按钮(我已经使用 netbeans GUI 编辑器完成了此操作。但我需要手动编写整个 GUI)。
有人可以告诉我实现这一目标的方法吗?
(换句话说,我需要将一些按钮右对齐,一些左对齐。)
(说)我创建了一个带有三个按钮的 JPanel。我想按如下方式放置按钮(我已经使用 netbeans GUI 编辑器完成了此操作。但我需要手动编写整个 GUI)。
有人可以告诉我实现这一目标的方法吗?
(换句话说,我需要将一些按钮右对齐,一些左对齐。)
我猜您希望“配置”按钮尽可能位于左侧,而“确定”和“取消”组合在右侧。如果是这样,我建议使用一个BorderLayout
并将Configure按钮放在 WEST 中,并使用一个流布局Ok、Cancel并将该面板放在 EAST 中。
另一种选择是使用GridBagLayout
和利用该GridBagConstrant.anchor
属性。
由于您花时间避免使用 NetBeans GUI 编辑器,因此这里有一个很好的示例 :-)
下面的代码:
import java.awt.BorderLayout;
import javax.swing.*;
public class FrameTestBase {
public static void main(String args[]) {
// Will be left-aligned.
JPanel configurePanel = new JPanel();
configurePanel.add(new JButton("Configure"));
// Will be right-aligned.
JPanel okCancelPanel = new JPanel();
okCancelPanel.add(new JButton("Ok"));
okCancelPanel.add(new JButton("Cancel"));
// The full panel.
JPanel buttonPanel = new JPanel(new BorderLayout());
buttonPanel.add(configurePanel, BorderLayout.WEST);
buttonPanel.add(okCancelPanel, BorderLayout.EAST);
// Show it.
JFrame t = new JFrame("Button Layout Demo");
t.setContentPane(buttonPanel);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setSize(400, 65);
t.setVisible(true);
}
}