setPreferredSize();
it is OK!
hehe!

解决方案 »

  1.   

    两位都比较自信,但是……,不好使,我的按钮数是变化的,我用GridLayout布局,按钮的大小总是试图填满我的布局管理器的全部,我需要把它固定大小,但还必须用布局管理器,help!
      

  2.   

    sorry这是不可能的,除非自己写FeelAndLook
    在其他一些布局可以用
    jButton4.setMaximumSize();
    jButton4.setMinimumSize();
    jButton4.setPreferredSize();
    来确保大小
      

  3.   

    你可以在GridLayout中指定行列数啊。new GridLayout(row,col)的构造
      

  4.   

    我在做一个五子棋的applet,一个小作业。
    棋盘的按钮布局怎么布,在初级、中级、高级、自定义设置行数列数切换的时候,需要保证按钮大小不变,还必须是方的,不用布局管理器怎么管理?多谢了!
      

  5.   

    写错了,不是五子棋,是扫雷,sorry
      

  6.   

    可以不用布局管理器,这样子的话,全部组件是由setBounds(int,int,int,int)来决定布局的.而且是"死的".不随窗口大小变化而变化.就你的问题来说,估计够用了.
    因为你可以把整个程序的总窗口固定大小,不让用户调整.如果你确实想用布局管理器,有个办法.你可以试试.
    给你的这些组件添加改变大小的相应事件:我这里假定一个JButton的实例jButton2,在panel是以gridLayout被布局的.
    给jButton2添加时间jButton2.addComponentListener(new java.awt.event.ComponentAdapter() {
                public void componentResized(ComponentEvent e) {
                    jButton2_componentResized(e);
                }
            });
    void jButton2_componentResized(ComponentEvent e) {
            jButton2.setSize(50,50);
        }这样子,当界面大小变化时,首先由布局管理器要调整界面上组件的大小和位置.这时,对于组件就会有一个componentResized事件发生,你写这个事件的出来函数,可以控制这些组件的位置在哪儿.或者说大小是多少,
      

  7.   

    很简单,这是GridLayout的特性,它把里面的东西都填满它的面积。
    只有FlowLayout,它才可以随意改里面东西的大小。你可以在GridLayout布局管理器的JPanel加一个新的JPanel,新的JPanel默认的布局管理器是FlowLayout,不要改它。在新的JPanel里面再加你的按钮,这样,你就可以改按钮的大小了。