GridBagLayout约束不起作用?

时间:2013-05-01 15:10:57

标签: java swing jpanel layout-manager gridbaglayout

以下是我使用GridbagLayout

的代码
public IntroPanel(){
    JPanel intro = new JPanel(new GridBagLayout());
    JLabel label1 = new JLabel("Test test test");
    label1.setFont(new Font("Helvetica", Font.PLAIN, 40));
    label1.setHorizontalAlignment(SwingConstants.LEFT);
    JLabel label2 = new JLabel("test2 test2 test2");

    setPreferredSize(new Dimension(640,480));
    GridBagConstraints gbc = new GridBagConstraints();

    gbc.gridx = 10;
    gbc.gridy = 10;
    gbc.weightx = 0;
    add(label1, gbc);

    gbc.gridx = 20;
    gbc.gridy = 10;
    add(label2, gbc);
}

我更改了所有gridxgridyGridBagConstraints以对齐它们但没有任何效果。对于网格约束,NORTHEAST也不起作用。有人可以帮忙吗?学习如何创建自己的GUI ..

主要编码在这里

public static void main(String[] args) {
    JFrame frame = new JFrame("Title111111111");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTabbedPane tp = new JTabbedPane();

    tp.addTab("Intro", new IntroPanel());
    tp.addTab("Catalogue", new CataloguePanel());

    JPanel panel = new JPanel();
    panel.setBackground(Color.WHITE);

    frame.add(panel);
    frame.add(tp);
    frame.pack();

    frame.setVisible(true);
}

1 个答案:

答案 0 :(得分:4)

该行

add(label1, gbc);

正在添加thisIntroPanel)。

你可能的意思是:

intro.add(label1, gbc);

编辑:

尝试在setLayout(new GridBagLayout());

之前添加add