设置JPanel布局

Sum*_*udu 4 java layout swing jpanel layout-manager

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

在此输入图像描述

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

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

aio*_*obe 12

我想您希望配置按钮尽可能地向左,并且确定取消组合在一起向右.如果是这样,我建议使用a BorderLayout并将配置按钮放在WEST中,并将流程布局设置为Ok,取消并将该面板放在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);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 绝对是手动编写的.稍微陡峭的学习曲线,但是更好的代码,灵活性和可维护性. (4认同)