在 Java Swing 中从左上角启动 GridBagLayout

2022-09-04 05:24:21

我是Java Swing的新手,我一直在努力从左上角启动GridBagLayout,以便c.gridx=0 c.gridy=0将我的对象放在左上角。

如果您能帮助我,告诉我在这一点之后我需要做什么,我将不胜感激:

    JPanel panel = new JPanel(new GridBagLayout());
    frame.add(panel);
    GridBagConstraints c = new GridBagConstraints();

我知道我必须使用西北或FIRST_LINE_START常量,但我不知道如何。我试图以这种方式做到这一点,但它没有意识到常量。

    frame.getContentPane().add(panel, BorderLayout.NORTHWEST);

感谢您的帮助。


答案 1

阅读 Swing 教程中有关如何使用 GridBagLayout 的部分。“weightx,weighty”上的 secton 指出:

除非至少为 weightx 或 weighty 指定一个非零值,否则所有组件都会聚集在其容器的中心。


答案 2

您需要使用您的 ' 属性。这应该为您做到:GridBagConstraintsanchor

frame.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.NORTHWEST;
frame.add(panel, gbc);

我不保证您不必设置约束对象的其他属性即可获得所需的布局。特别是,您可能需要设置和设置,以便面板占用为其提供的所有可用空间。weightxweighty1


推荐