设置JPanel布局

时间:2012-08-03 07:00:58

标签: java swing layout jpanel layout-manager

(说)我创建了一个带有三个按钮的JPanel。我想按如下方式放置按钮(我使用netbeans GUI编辑器完成了这个。但我需要手动编写整个GUI。)

enter image description here

有人可以告诉我一种实现这一目标的方法。

(换句话说,我需要将一些按钮右对齐,其他一些按钮左对齐。)

1 个答案:

答案 0 :(得分:12)

我想您希望配置按钮尽可能地向左,并且确定取消组合在一起对。如果是这样,我建议使用BorderLayout并在WEST中放置配置按钮,并为确定取消的流布局>并将该面板放在EAST中。

另一种选择是使用GridBagLayout并使用GridBagConstrant.anchor属性。

由于您正在花时间避免使用NetBeans GUI编辑器,因此以下是一个很好的示例: - )

enter image description here

以下代码:

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