2008年2月20日 星期三

Layout Manger

每個在Layout上的Component都有四個size(height, width)

  • Component.getMinimumSize() - 最小的極限值
  • Component.getMaximumSize() - 最大的極限值
  • Component.getPreferredSize() - 理想的大小
  • Component.getSize() - 目前實際的大小
而Layout Manager做的事就是決定每一個Component的大小以及放置的位子。當呼叫Container.validate(),則Container的Layout manager就會經由getMinimumSize()、getMaximumSize()、getPreferredSize()的提示,透過setBounds(x, y, width, height)來設定每一個Component真正的大小以及位置。而Layout manager所做的這些事是透過呼叫
  • layoutContainer(Container c)
然而,container也需要有getMiniumumSize()、getMaximumSize、getPreferredSize()這些函式,因為他也是個Component包住整個Container。所以Layout manager也必須考量Container內所有的Component的總大小來容納它們。這些事情是間接透過更上層的Layout manger來做到的
  • preferredLayoutSize(Container c)
  • maximumLayoutSize(Container c)
  • minimumLayoutSize(Container c)

0 意見: