忽略了setbounds

时间:2012-08-07 19:10:53

标签: java swing setbounds

我只想通过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);

    }

}

3 个答案:

答案 0 :(得分:1)

按钮的位置还取决于您当前使用的布局。这是一个Vusual Guide to Layout,可以帮助您确定最符合要求的布局。

答案 1 :(得分:0)

使用setLayout(null),它有效!

答案 2 :(得分:0)

您正在扩展JPanel,因此使用JPanel的默认构造函数,默认情况下LayoutManager无论如何都是FlowLayout! 因此,如果您真的想使用NullLayout,可以将其添加到您的班级中:

  public Panneau_fenetre1A()
  {
    super(null);
  }

但是认真考虑其他布局管理器,例如BorderLayoutManager(super(new BorderLayout()))是一个好的开始。

在设计对话框时,请记住您可以并且应该嵌套布局:一个JPanel在另一个JPanel中(例如BorderLayout中的GridLayout)。请注意:a' good'对话框应正确调整大小,以便在用户调整框架大小时,您希望自动扩展信息对象(如表格),而不显示大面积的JPanel背景。这是你用NullLayout无法实现的东西。