作业 可是为啥我创建的按钮不能调整大小呢。
package hoemwork05;import java.awt.BorderLayout;
import java.awt.Container;import javax.swing.JButton;
import javax.swing.JFrame;public class SwingTest05 extends JFrame{
public SwingTest05(){

this.setTitle("事件机制演示");
this.setBounds(200, 200, 500, 600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container c=this.getContentPane();



JButton okBut=new JButton("打开");
       
        okBut.setSize(11, 22);
c.add(okBut,BorderLayout.NORTH);


}
public static void main(String args[]){
new SwingTest05().setVisible(true);



}
}

解决方案 »

  1.   

      okBut.setSize(11, 22);===>
      okBut.setPreferredSize(11,22);
      

  2.   

    去掉布局管理器
    import java.awt.BorderLayout;
    import java.awt.Container;import javax.swing.JButton;
    import javax.swing.JFrame;public class Test extends JFrame{
    public Test(){this.setTitle("事件机制演示");
    setLayout(null);//////////
    this.setBounds(200, 200, 500, 600);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container c=this.getContentPane();JButton okBut=new JButton("打开");
        
        okBut.setSize(10, 10);
      //okBut.setBounds(100, 100, 40, 10);
    c.add(okBut,BorderLayout.NORTH);
    }
    public static void main(String args[]){
    new Test().setVisible(true);}
    }
      

  3.   

      这个是布局引起的,你看看你用的BorderLayout 
      

  4.   

    有布局管理器的情况下想要设置组件大小就设置其prepersize,否则size无用,当然没有布局的情况下size即可。
      

  5.   

    初始大小是由组件的preferred size决定的。Preferred sizes是被自动计算或程序员设定的。对容器而言,其自动preferred size是由布局管理器视合适与否计算得出,但是通常又是被其子组件来决定其preferred size。Minimum size是被用来停止缩小组件,Maximum size是被用来停止扩张组件,两者计算方式都同preferred size布局的存在可以无视以上这些尺寸属性只要它愿意,换句话说,这些尺寸属性只是由组件提供的暗示而已,布局可以最优先控制尺寸。