2009-12-01 83 views
0

我有要求我必須顯示tabbedpane,但第一個標籤必須是靜態的。所以我嘗試使用jidetabbedpane,因爲它關心效果,所有的選項卡都列在一個框中,它是可導航的,它可以顯示所需的關閉操作等等。但我唯一缺少的是選項:設置靜態或固定的第一個組件。任何方式強制jidetabbedpane總是顯示第一個標籤

任何想法來克服這個問題?

由於提前,

尼爾斯·德魯斯

+0

對於選項卡,「靜態或固定」意味着什麼?其內容不應該改變?它不應該是可移動的?它不應該是可關閉的? – Chris 2009-12-01 19:50:53

+0

它不應該是可關閉的,可移動的,如果有許多標籤打開,它應該始終可見。 – 2009-12-01 21:35:52

回答

0

是。拋棄那些需要使用固定第一個選項卡的選項卡式窗格的設計:這只是濫用組件來實現它無意的功能。

你可以通過附加一個更改監聽器並使其反向或反向更改來阻止選項卡翻轉;但我不會詳細討論這個問題,因爲基本前提是錯誤的。

+0

非常感謝您向我解釋這個要求是多麼的錯誤。我已經認爲這個要求有點奇怪。 我們想要實現的是前面的某種儀表板,從此開始,您可以在選項卡中打開任何類型的對象/頁面。但是你必須儘快回到儀表板,並且必須始終可見(所以用戶可以回到「家」而不用銷燬舊的標籤)。你會爲這個問題做什麼? 客戶希望這個「固定」的第一個標籤如此糟糕,我不想讓他看到他,因爲他不會對解決方案感到滿意。 – 2009-12-01 21:22:18

+0

那麼,它開始聽起來更合理。您希望**標籤**始終可見,不一定是其關聯頁面的內容。而且你希望標籤不要按照可用/可用標籤的順序移動。我有一個新的建議可以滿足這些要求,並具有合理的審美。 (看到其他答案,我完成發佈後) – 2009-12-01 22:10:48

1

聽起來像是要求某些母版頁始終可以快速訪問,儘管用戶正在忙於創建其他標籤。我有一個建議:

這涉及嵌套的JTabbedPanes。如您所知,您可以將標籤放置在組件的所有四面。所以我要做的就是創建一個只有1或2個選項卡的「主」JTP,其中第一個當然是您的「主」選項卡。然後,該組件中的第二頁可以是空的,也可以是用戶創建第一個新的「輔助」頁面時顯示的頁面。第二頁應該也是JTP,可能是標籤放在不同的方向;並且所有新創建的輔助頁面都將包含在此「內部」JTP中。用戶可以在輔助頁面中翻轉,關閉它們,但是主頁面的標籤總是在內部JTP的邊界外可見。

然後你就可以與細節,如做一次JTP取消可關閉的選項卡撥弄。如果該窗格只有2個頁面,那麼將它們設置爲不可移動應該不是什麼優先事項。

或者,您可以將主要和次要內容放在CardLayout的單獨頁面上,並提供一個按鈕(或兩個)以快速前往(後退)。根據您的應用佈局方式,這可能需要少一些空間。您可以將Action連接到此按鈕,由加速鍵啓動......非常快捷,非常方便。這可能會安撫你的老闆/顧客。

0

DockingManager有一個叫做setTabbedPaneCustomizer,以幫助您自定義選項卡窗格方法。

dockingManager.setTabbedPaneCustomizer(new DefaultDockingManager.TabbedPaneCustomizer() { @Override public void customize(JideTabbedPane aTabbedPane) { // figure out if the aTabbedPane is the first pane // getTabCount() == 1 might be a solution? if(isTheFirstPane(aTabbedPane)) { aTabbedPane.setShowCloseButtonOnSelectedTab(false); } } });

上面的代碼塊需要你注意,找出一種合適的方式,以找出是否開放的第一個窗格是第一位的。希望能幫助到你。

相關問題