那是setBounds(int,int,int,int)吧?

解决方案 »

  1.   

    你要把布局管理器先设置成NULL
      

  2.   

    把布局管理器设置为null之后按钮根本加不了到面板上去。
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;class MyPanel extends JPanel
    {
    private JButton button1;
    private JButton button2;
    private JButton button3; public MyPanel()
    {
    setLayout(new BorderLayout()); button1 = new JButton("button1");
    Panel p1 = new Panel();
    p1.setLayout(null);
    button1.setSize(150,50);
    //p1.setLayout(new FlowLayout());
    p1.add(button1); button2 = new JButton("button2");
    button3 = new JButton("button3");
    Panel p2 = new Panel();
    p2.add(button2);
    p2.add(button3); add(p1, "West");
    add(p2, "East"); }
    }public class Test
    {
    public static void main(String[] args)
    {
    JFrame jf = new MyFrame();
    jf.show();
    }
    }class MyFrame extends JFrame
    {
    public MyFrame()
    {
    setSize(400,400);
    Container con = getContentPane();
    con.add(new MyPanel());
    }
    }
      

  3.   

    jButton1.setBounds(new Rectangle(145, 27, 160, 42));
      

  4.   

    setBounds()有什么用?和setSize()还不是一样?只不过位置不同而已。
    运行过了,不行。
      

  5.   

    应该是setBounds(new Rectangle(20,20,20,20));
    setSize一般用于面板
    setSize(new Dimension(400,200));
      

  6.   

    button1.setBounds(0,0,150,150)没问题的,前两个是位置,后两个参数是坐标;
    光setSize()编译器只能知道大小,但是它不知道要把按钮放在哪里啊。
    不能显示主要是由于p1没有默认的布局管理所以也就没法根据组件的大小来设置大小,当加到"West"以后当然就无法显示了,只要在上面加上p1.setSize(150,1)就行了。后面是1,因为是加在West上,跟纵坐标没关系了,系统自动设置的。