所以,我有这个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);
提前致谢! :)
答案 0 :(得分:3)
JPanel默认使用FlowLayout。调用setBounds()和使用LayoutManager是互斥的。您可以使用LayoutManager(覆盖您执行的任何setBounds())或您不使用LayoutManager(setLayout(null))和setBounds()。
首选方法是使用LayoutManager。了解http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
的方法