我只是写了一个简单的代码,我希望在主框架上显示一个文本字段和一个按钮,但运行后我看到的只是文本字段。
如果我在文本字段之后编写按钮的代码,那么只会显示按钮。
知道为什么吗?
JFrame mainframe=new JFrame();
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainframe.setBounds(0,0,200,200);
JButton jb=new JButton();
jb.setText("Leech");
mainframe.add(jb);
JTextField link=new JTextField(50);
mainframe.add(link);
mainframe.pack();
mainframe.setVisible(true);
最佳答案
JFrame
上的默认布局是 BorderLayout
。在具有此类布局的Container
上调用add
方法等同于调用add(..., BorderLayout.CENTER)
。 BorderLayout
的每个位置只能包含一个元素。因此打了两个电话
mainframe.add(jb);
mainframe.add(link);
生成包含您添加的最后一个组件的 CENTER。如果你想避免这种情况,你可以将它添加到不同的位置,或者通过调用 JFrame#setLayout
使用另一个布局管理器(例如 FlowLayout
)
关于Java Swing JFrame 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660751/