2016-02-13 120 views
0

我有一個JSplitPane分爲verticlly,它包含左側的JList和右側的JTabbedPane。 JList vararaiable被命名爲jlist1,其中包含4個項目。 默認情況下,JTabbedPane沒有標籤。 我希望每當用戶點擊任何JList項目時,應該在JSplitPane的右側動態打開一個新選項卡(即在JTabbedPane中打開一個新選項卡)。 我也想給所有動態打開的選項卡提供一個關閉按鈕[x]。 我該如何做到這一點?如何點擊JList項目在JTabbedPane中打開新選項卡?

+0

它在一定程度上有所幫助。但我無法爲每個JList項目放置ListSelection事件。你能告訴我如何爲JList中的每個項目添加一個監聽器嗎?附:我是新手 –

+1

'我如何爲JList中的每個項目添加一個監聽器?' - 監聽器確實適用於所有項目。閱讀Swing教程中有關如何使用列表的部分作爲示例。但是,您不應該使用選擇偵聽器。如果用戶使用鍵盤從頂部項目移動到底部項目,則會爲每個選擇打開一個新選項卡。常規慣例是使用鼠標雙擊或使用鍵盤Enter鍵對選定項目執行處理。 – camickr

回答

0

您需要添加一個偵聽器來偵聽jlist中的選擇事件。您可以通過在JList中觸發選擇事件來實現此目的。 您可以使用javax.swing.event JTabbedPane應偵聽此事件,獲取與事件關聯的對象並在偵聽器實現中構造一個選項卡。

+0

謝謝你的回覆。你可以舉個例子來解釋嗎? –

2

我也想通過閱讀從Swing教程中的部分上How to Use Tabbed Panes提供關閉按鈕[X]所有動態打開的標籤

開始。有一個工作示例顯示如何執行此操作。

我想,只要用戶點擊任何JList的項目,一個新的標籤應該是動態打開

那麼任何用戶界面應該允許用戶既可以使用鼠標或鍵盤來提供一個Action。因此,通常在使用JList時,您可以使用鼠標雙擊或使用鍵盤輸入。

結賬List Action。這是一個簡單的類,允許您創建一個Action,只要使用鼠標或鍵盤就可以調用該類。

因此,在您的自定義Action中,您需要添加邏輯來爲JList中的選定項目創建新選項卡。從鏈接中提供的簡單操作開始,並添加您的自定義代碼。

+0

謝謝你,哥們。我仍然需要在課堂的「行動」部分工作。 –

相關問題