1
我想知道是否可以從JTabbedPane中檢索包含標籤的組件,以便我可以將它放在BorderLayout的北部位置,並且標籤窗格將位於BorderLayout中心職位?如何從JTabbedPane中獲取標籤組件
我想知道是否可以從JTabbedPane中檢索包含標籤的組件,以便我可以將它放在BorderLayout的北部位置,並且標籤窗格將位於BorderLayout中心職位?如何從JTabbedPane中獲取標籤組件
我沒有看到這樣做的任何一點 - 默認情況下標籤在北方位置。
而且 - 不,你不能這樣做 - 你不能將選項卡與選項卡內容區域分開,因爲它是由TabbedPaneUI組合的單個組件。通過使用setTabPlacement
方法,您可以指定相對於內容的標籤位置。例如,您可以將其更改爲EAST佈局:
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.setTabPlacement (JTabbedPane.EAST);
這對我來說很重要。根據需要分開它們會很方便。例如,在北方位置,我可能會有一個JPanel,其中包含第一組按鈕,然後是選項卡,中間位置是選項卡內容區域。就我所知,我無法用JTabbedPane做到這一點。 – jerome
@jerome是的,你不能用標準的JTabbedPane做到這一點。而且正如我在答案中所說 - 無法將JTabbedPane選項卡與內容分開。這有很多原因,但我懷疑它們對你來說很有趣,因爲它們都來自Java爲各種系統提供的UI和L&F。 –
那麼有辦法做到這一點,但它似乎太複雜了。這將是一個具有BorderLayout的組件。該組件將包含一個可以繪製標籤的組件,另一個包含用於標籤內容區域的CardLayout的JPanel,並使用MVC爲選定的標籤顯示正確的內容。但這意味着我必須實現標準JTabbedPane提供的大部分功能。沒有其他(更簡單)的解決方案? – jerome