3

幾個月前,我閱讀了Swing教程以瞭解如何在Swing中實現可調整大小的組件。當需要絕對定位時替代佈局管理器的替代解決方案

本教程講述瞭如何使用空的LayoutManager來實現絕對定位子組件的可能性。

在關於另一個主題的討論@安德魯湯普森指出,使用空佈局是一個壞主意。這篇文章http://download.oracle.com/javase/tutorial/uiswing/layout/none.html描述空佈局管理器也不可取,無論如何它說,在某些情況下,這可能是有用的。

在的情況下:

  1. 我需要一個JPanel的子組件絕對定位
  2. 我需要實現(以建立可能重疊的情況)
  3. 的子組件我自己的邊框條件
  4. 我需要JPanel的子組件可調整大小

在描述的情況下是否正確使用空佈局管理器?

或者還有其他更好的解決方案來實現這個目標,使用我的JPanel容器組件的佈局管理器?

在此先感謝

回答

2

你最好的解決辦法是實現自己的LayoutManager(或擴展現有的一個,如果是真正貼近您的需求),用你正在尋找的功能和控制。您的絕對定位要求只會成爲您的佈局管理器的一種方法。

例如,我過去一直遵循擴展FlowLayout的技巧,使其能夠在包含在JScrollPane中時正確地包裝元素。 Here is an example,雖然這不是我用過的。