2009-07-08 100 views
0

我想創建一個應用程序,其中有一個JSplitPane,它包含左側的文檔樹和右側的當前編輯器窗格。編輯器窗格有一個工具欄作爲編輯窗格的一部分。我的問題是,當拆分窗格的右側組件達到工具欄大小時,包含JSplitPane的JFrame被調整大小,右側窗格開始「擠壓」左側窗格。JToolbar在JSplitPane中調整大小

我想知道是否有人知道一種方法來保持splitpane的兩個組件在相同的比例,並有工具欄停止顯示其中的項目或有一個'更多'按鈕。我已經在框架工具欄中使用了「更多」功能的底格里斯河工具欄,它似乎不會在JScrollpane內調整大小。

感謝您的幫助。

回答

3

如果我理解正確,您正在尋找拆分窗格來處理雙方具有相同的優先級,當父幀被調整大小。如果是這種情況,你可能想看看JSplitPane.setResizeWeight(double)的方法。

指定當拆分窗格的大小發生更改時如何分配額外空間。缺省值0表示右側/底部組件獲取所有額外空間(左側/頂部組件行爲固定),其中值爲1指定左側/頂部組件獲取所有額外空間(右側/底部組件動作固定)。具體來說,左側/頂部組件獲得(weight * diff)額外空間,右側/底部組件獲得(1-weight)* diff額外空間。

考慮到這一點,我會給0.5一個嘗試。

編輯

看着爲BasicSplitPaneUI的代碼,它會採取左,右兩個組件的最小尺寸,考慮到當它被調整,不管重量。重量仍然很重要,請介意你。它只是被最小的組件所欺騙。考慮到這一點,請嘗試在工具欄或其所在的滾動條上設置最小尺寸。

+0

嗯試了一下,沒有改變。我認爲問題在於工具欄需要保持其最大尺寸,並重新調整JSplitPane的大小並強制正確的組件具有其寬度。感謝您的快速回復。 – schubySteve 2009-07-08 01:10:41