【发布时间】:2012-08-01 05:07:21
【问题描述】:
(说)我创建了一个带有三个按钮的 JPanel。我想按如下方式放置按钮(我已使用 netbeans GUI 编辑器完成此操作。但我需要手动编写整个 GUI)。
谁能告诉我实现这一目标的方法。
(换句话说,我需要将一些按钮右对齐,一些左对齐。)
【问题讨论】:
标签: java swing layout jpanel layout-manager
(说)我创建了一个带有三个按钮的 JPanel。我想按如下方式放置按钮(我已使用 netbeans GUI 编辑器完成此操作。但我需要手动编写整个 GUI)。
谁能告诉我实现这一目标的方法。
(换句话说,我需要将一些按钮右对齐,一些左对齐。)
【问题讨论】:
标签: java swing layout jpanel layout-manager
我猜你希望 Configure 按钮尽可能靠左,ok 和 cancel 组合在一起正确的。如果是这样,我建议使用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);
}
}
【讨论】: