JFrame - 组件忽略Y和X,除了一个

时间:2014-07-11 16:11:58

标签: java swing jframe components layout-manager

所以,我有这个JFrame代码,其中一切似乎都很顺利,并且没有错误,但所有组件(除了一个组件)都忽略了Y轴和X轴。为什么会这样?我甚至尝试插入一些极其荒谬的Y轴,如456789甚至-80,它保持不变。为什么呢?

我的代码:

    frame.setSize(750,200);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();
    frame.setContentPane(panel);

    textField.setBounds(0,0,40,200);
    textField.setVisible(true);
    panel.add(textField);

    button.setBounds(200, 0, 40, 200);
    button.setVisible(true);
    panel.add(button);

    bInfo.setBounds(0,80,40,400);
    bInfo.setVisible(false);
    panel.add(bInfo);

    label.setBounds(0,40,40,160);
    label.setVisible(false);
    panel.add(label);

    registerButton();
    registerMoreInfoButton();

    frame.setVisible(true);

提前致谢! :)

1 个答案:

答案 0 :(得分:3)

JPanel默认使用FlowLayout。调用setBounds()和使用LayoutManager是互斥的。您可以使用LayoutManager(覆盖您执行的任何setBounds())您不使用LayoutManager(setLayout(null))和setBounds()。

首选方法是使用LayoutManager。了解http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

的方法