这俩谁的权限更高,或者说谁能“一锤敲定”组件最后显示的大小?

解决方案 »

  1.   

    看你有没有用布局管理器了
    setPreferredSize()通知布局管理器最好将组件大小设为指定值
    setBounds()则是自己(而非布局管理器)指定大小和方位
      

  2.   

    首先,preferredSize只是设置大小,不设置位置,而bounds既包括大小又包括位置。其次,要看布局管理器是采用何种方式布局的,这个没有定数,和布局管理器的实现有关,一般有size、preferredSize、minimumSize、maximumSize四种,不同布局管理器的管理方式不一样,只能试验或者看源码,楼主哪天高兴也可以自己写个布局管理器,也可以这四种都不用,自己搞一套也是可以的。最后说一下,setBounds()设置的是size,这种一般用于无布局管理器的情况下,而setPreferredSize()设置的是preferredSize,一般设置的是在遵循布局管理器的规则下的初始默认大小,所以如果用了布局管理器,一般setPreferredSize()才能改变初始大小。