1

我对 GridBagLayout 有定位问题:我尝试在中心(顶部)放置一个标签,但使用我的代码(出于我没有看到的原因),我有这个: 在此处输入图像描述

我希望标签 Test 位于窗口的顶部和中心。有人可以解释一下这种不良定位的原因吗?

我的程序:

public class Accueil extends JFrame {

    private JPanel home = new JPanel();
    private GridBagConstraints grille = new GridBagConstraints();
    private JLabel title = new JLabel("Test");

    public Accueil() {
        home.setLayout(new GridLayout());
        init_grille();
        init_title();

        this.add(home);
        this.setSize(600,600);
        this.setTitle("Test One");
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);

    }

    private void init_grille() { 
        grille.fill = GridBagConstraints.BOTH;
        grille.weightx = 2;
        grille.weighty = 5;
        grille.ipady=grille.anchor=GridBagConstraints.CENTER;;

    }

    private void init_title() {
        grille.fill = GridBagConstraints.HORIZONTAL;
        grille.gridx = 0;
        grille.gridy = 0;
        home.add(title,grille);
    }

    public static void main(String [] args) {
        new Accueil();
    }
}
4

1 回答 1

1

这无济于事:

home.setLayout(new GridLayout());

你可能想要:

home.setLayout(new GridBagLayout());

此外,这些更改应该有效:

private void init_title() {
      grille.fill = GridBagConstraints.NONE;
      grille.gridx = 0;
      grille.gridy = 0;
      grille.anchor = GridBagConstraints.NORTH;
      home.add(title,grille);
  }
于 2013-04-18T21:06:19.163 回答