首先要继承Jcomponent类> JButton、JLabel等Component的大小会随着自己的Caption变化
那是因为他们在getPreferedSize()中计算了自己应该占多大size比较好,当然如果想要更完善的话,还要实现getMaximumSize()和getMinimunSize()
LayoutManager会调用这些方法来进行布局。> 固定大小的Component?
这个有很多方法,比如重写setBounds(Rectanle)方法。 或者结合LayoutManager来做。
你可以参考javax.swing.Box的source
那是因为他们在getPreferedSize()中计算了自己应该占多大size比较好,当然如果想要更完善的话,还要实现getMaximumSize()和getMinimunSize()
LayoutManager会调用这些方法来进行布局。> 固定大小的Component?
这个有很多方法,比如重写setBounds(Rectanle)方法。 或者结合LayoutManager来做。
你可以参考javax.swing.Box的source
然后重载楼上说的那些方法实现固定大小--不过,不见得能固定。
因为容器不见得容许你这么做,除非你也重载容器以下,但是这样属于特殊问题,没有实用性了。