我只是想通过setBounds方法放置我的JButton。但是无论此方法的参数如何,按钮都位于顶部的中间。
这是我的代码:
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
class Panneau_fenetre1A extends JPanel
{
JButton boutonOK = new JButton ("OK");
public Panneau_fenetre1A(int Na)
{
boutonOK.setBounds(300,300,30,30);
add(boutonOK);
}
}
按钮的位置还取决于您当前使用的布局。这是Vusual Layout指南,可帮助您确定最适合您要求的布局。
有了setLayout(null)
,它就可以工作了!
您正在扩展 JPanel,因此使用 JPanel 的默认构造函数,并且无论出于何种原因,默认的 LayoutManager 都是 FlowLayout!因此,如果您真的想使用 NullLayout,则可以将其添加到您的类中:
public Panneau_fenetre1A()
{
super(null);
}
但是认真考虑其他布局管理器,例如BorderLayoutManager(super(new BorderLayout()))是一个好的开始。
在设计对话框时,请记住,您可以并且应该嵌套布局:一个 JPanel 嵌套在另一个 JPanel 中(例如,BorderLayout 中的 GridLayout)。请注意:"好"对话框应正确调整大小,以便在用户调整框架大小时,您希望自动扩展信息对象(如表格),并且不显示大面积的 JPanel 背景。这是您无法通过NullLayout实现的。