gpt4 book ai didi

java - 将 JLabel 放置在 GridBagLayout 的左上角

转载 作者:行者123 更新时间:2023-11-30 03:27:18 29 4
gpt4 key购买 nike

我正在使用 GridBagLayout,我想将 JLabel 和文本字段放置在 JPanel 的左上角。我知道这个问题可能是重复的,但我找不到可以解释为什么我的代码最终居中的问题。

    JLabel user = new JLabel(ss[0]);
JLabel av = new JLabel(ss[1]);
JTextField ufield = new JTextField("");

user.setBorder(BorderFactory.createLineBorder(Color.black));
av.setBorder(BorderFactory.createLineBorder(Color.black));
ufield.setBorder(BorderFactory.createLineBorder(Color.black));

//User Label
c.anchor = GridBagConstraints.NORTHWEST;
c.gridx = 0;
c.gridy = 0;
c.weightx = 1;
c.insets = new Insets(2, 0, 0, 2);
p.add(user, c);

//User TextField
c.fill = GridBagConstraints.BOTH;
c.gridx = 1;
c.gridy = 0;
c.gridwidth = 5;
c.gridheight = 1;
c.weightx = 2;
c.insets = new Insets(5, 1, 1, 5);
p.add(ufield, c);

//Available Label
c.fill = GridBagConstraints.NORTHWEST;
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 1;
c.gridheight = 1;
c.weightx = 1;
c.insets = new Insets(5, 1, 1, 5);
p.add(av, c);

f.repaint();
f.revalidate();

最终看起来像这样: enter image description here

我希望它靠近顶部而不是中心

最佳答案

JLabel 和文本字段实际上在 JPanel 的左上角对齐,但是,JPanel 并不在 JFrame 的左上角(我猜测是变量 f),因此总体来说它看起来居中而不是比左上角。

当您向 JFrame 添加 JPanel 时,您必须控制 JFrame 的布局。您可以使用 BorderLayout 来做到这一点,例如:

f.getContentPane().setLayout(new BorderLayout());
f.add(p, BorderLayout.PAGE_START);

关于java - 将 JLabel 放置在 GridBagLayout 的左上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29889428/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com