【问题标题】:Setting JPanel layout设置 JPanel 布局
【发布时间】:2012-08-01 05:07:21
【问题描述】:

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

谁能告诉我实现这一目标的方法。

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

【问题讨论】:

    标签: java swing layout jpanel layout-manager


    【解决方案1】:

    我猜你希望 Configure 按钮尽可能靠左,okcancel 组合在一起正确的。如果是这样,我建议使用BorderLayout 并将 Configure 按钮放在 WEST 中,并为 OkCancel 和将该面板放在 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);
        }
    }
    

    【讨论】:

    • @aioobe,谢谢,当我尝试这样做时,请告诉我在构建 GUI 时最好遵循的方法是什么?我的意思是更难的方法(手动编写整个东西)或简单的方法(比如使用 NetBeans,我觉得这很烦人)......或者还有第三种选择吗??
    • 肯定是手动写的。学习曲线稍微陡峭,但代码、灵活性和可维护性要好得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2017-03-14
    • 2016-07-31
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多