使用GridBagLayout定位

时间:2013-04-18 21:02:05

标签: java swing gridbaglayout

我对GridBagLayout存在定位问题: 我尝试将标签置于中心(顶部),但是我的代码(由于我没有看到的原因),我是这样的: enter image description here

我希望标签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();
    }
}

1 个答案:

答案 0 :(得分: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);
  }
相关问题