我創建了一個JFrame
,其初始化爲BorderLayout
和JScrollPane
作爲其CENTER
元素。Java的FlowLayout沒有正確調整大小
滾動窗格設置爲VERTICAL_SCROLLBAR_ALWAYS
和HORIZONTAL_SCROLLBAR_NEVER
策略。我的frame
的目的是爲了控制寬度,而高度應該隨着數據的添加/刪除而增大/縮小。
裏面我scroll pane
,我添加了一個簡單的JPanel
(可以稱之爲內容面板),它與FlowLayout
(和LEADING
政策)初始化。
爲了測試這一點,我只需將我的content panel
填充爲20 JLabel("Item " + n)
組件,其中n
是循環計數器。
如果frame
足夠大,並且我收縮寬度時將標籤換行到其他行,我期望看到我的labels
顯示在單行上。但是,相反,只有一行顯示沒有包裝......曾經。
有沒有人知道爲什麼flow layout
不涉及scroll pane
涉及?
如果我刪除scroll pane
一起,直接就把content panel
在frame
,發生所期望的效果的包裝,但如果frame
高度收縮比content panel
高度,它只是消失較小。
想法是我希望我的labels
在必要時被包裝,但如果意味着必須向上/向下滾動,則始終可見。
有關如何解決此問題的任何建議?
謝謝。
它似乎到目前爲止根據需要/預期工作!讓我們希望Oracle比Sun更願意投資Swing!多謝camickr! – Jeach 2010-08-03 06:04:17
你會說FlowLayout有缺陷嗎?或者你認爲這是Sun的意圖嗎? WrapLayout使得它更應該成爲Swing的一部分! – Jeach 2010-08-03 06:13:21
它不是一個錯誤,因爲沒有試圖動態重新計算首選大小的代碼。它只是有人設計它的工作方式。 – camickr 2010-08-03 14:38:01