在我的應用程序中,我有兩個擺動組件,它們看起來像這張圖片。問題是橙色組件需要一個垂直滾動條,但我希望組件的右邊緣保持精確對齊(並且寬度可以隨着用戶使應用程序變寬或變窄而變化)。如果我使用類似網格佈局的東西,滾動條佔用空間,然後滾動條與紅色組件的右邊緣對齊。將jscrollbar附加到另一個組件
我想我可能需要使用滾動條組件,並添加單獨並用它來控制橙色部件。有沒有辦法將滾動條附加到另一個組件上?如果不使用scrollpane,我會覺得這很困難。 我也歡迎任何有關如何解決這個問題的建議。
在我的應用程序中,我有兩個擺動組件,它們看起來像這張圖片。問題是橙色組件需要一個垂直滾動條,但我希望組件的右邊緣保持精確對齊(並且寬度可以隨着用戶使應用程序變寬或變窄而變化)。如果我使用類似網格佈局的東西,滾動條佔用空間,然後滾動條與紅色組件的右邊緣對齊。將jscrollbar附加到另一個組件
我想我可能需要使用滾動條組件,並添加單獨並用它來控制橙色部件。有沒有辦法將滾動條附加到另一個組件上?如果不使用scrollpane,我會覺得這很困難。 我也歡迎任何有關如何解決這個問題的建議。
實現您建議的方法應該不會太難。將橙色組件包裝在JScrollPane
中,但將滾動窗格配置爲隱藏兩個滾動條。然後,將滾動窗格中的垂直滾動條的滾動模型設置爲獨立滾動條中的滾動模型。即使滾動窗格滾動條處於隱藏狀態,如果模型已鏈接,它仍將滾動。有些代碼見my answer in this question - 這是一個不同的應用程序,但類似的原則。
或者,您可以使用帶有可見垂直滾動條的JScrollPane
,並在紅色組件旁邊添加一個間隔組件以保持其對齊。我想你可以使用兩列的GridBagLayout
。第一行包含紅色組件和間隔區,第二行包含橙色組件(橫跨兩列)的滾動窗格。然後,您只需從JScrollPane
中獲取滾動條組件的寬度,並將間隔器的首選寬度設置爲相同的值。這種策略的一個缺點是,如果滾動條寬度發生變化(例如由於UI更改),可能難以更新分隔符大小。
第一種方法似乎工作,謝謝。 –