忽略设置边界



我只是想通过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实现的。

相关内容

  • 没有找到相关文章

最新更新