gpt4 book ai didi

java - 需要一个 JCheckBox 位于 JLabel 之前,但标签位于复选框底部稍上方

转载 作者:太空宇宙 更新时间:2023-11-04 14:34:54 27 4
gpt4 key购买 nike

这是代码片段:

public class Test {

Test(){
JFrame f=new JFrame();
JPanel panel=new JPanel();
GridBagLayout gb=new GridBagLayout();
panel.setLayout(gb);
GridBagConstraints gc= new GridBagConstraints();
gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=1;
gc.gridy=0;

String label="hello";
JLabel l1=new JLabel(label);
panel.add(l1,gc);
gc.anchor=GridBagConstraints.NORTHWEST;
gc.gridx=0;
gc.gridy=0;

JCheckBox check=new JCheckBox();
check.getAccessibleContext().setAccessibleDescription(label);
panel.add(check,gc);

f.add(panel);
f.setSize(200, 300);
f.setVisible(true);
}

public static void main(String[] args) {
Test t=new Test();
}
}

复选框和标签从左到右都很好,但我面临的问题是标签位于复选框上方一点,我该怎么做才能使它们位于同一行?

最佳答案

正如我测试了你的代码,这是因为 gc.anchor=GridBagConstraints.NORTHWEST;文本未在复选框中心对齐。我不明白为什么你需要那个 anchor ,但如果你想将文本和复选框向左对齐,你可以使用 setHorizontalTextPosition(SwingConstants.LEFT)正如@a_horse_with_no_name所建议的。尝试运行下面的代码,您会发现它完全对齐。

 public class Testcheckbox {

GridBagLayout gb = new GridBagLayout();
GridBagConstraints gc = new GridBagConstraints();

public Testcheckbox(){
JFrame f=new JFrame();

JPanel content = new JPanel();
content.setLayout(new FlowLayout(SwingConstants.NORTH_WEST));

JPanel panel=new JPanel();
panel.setLayout(gb);

String label="hello";
JLabel l1=new JLabel(label);
l1.setHorizontalTextPosition(SwingConstants.LEFT);
// gc.anchor=GridBagConstraints.NORTHWEST;
gc.weightx = 0;
gc.weighty = 0;
gc.gridx = 1;
gc.gridy = 0;
panel.add(l1,gc);



JCheckBox check=new JCheckBox();
check.getAccessibleContext().setAccessibleDescription(label);
check.setHorizontalTextPosition(SwingConstants.LEFT);
// gc.anchor=GridBagConstraints.NORTH;
gc.weightx = 0;
gc.weighty = 0;
gc.gridx = 0;
gc.gridy = 0;
panel.add(check,gc);

f.add(content);
content.add(panel);
f.setSize(200, 300);
f.setVisible(true);


}
public static void main(String[] args) {
Testcheckbox t = new Testcheckbox();
}
}

编辑

再次检查我上面的代码,我已经更新了它。我又添加了一个panel这样布局gridbag不受 panel 内容放置位置的影响在 JPanel 。我做对了吗?

关于java - 需要一个 JCheckBox 位于 JLabel 之前,但标签位于复选框底部稍上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25717847/

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