我有一個使用JTabbedPane顯示其內容的開源應用程序。看看這個截圖:JTabbedPane問題:如何查找和跟蹤現有的JTabbedPane的選項卡
http://i46.tinypic.com/4rrs6c.jpg http://i46.tinypic.com/4rrs6c.jpg
主要內容有調整JSplitPane在那裏的左側是TreeMenu對象,並在右邊是JTabbedPane的對象。
當我從左側面板中點擊菜單,就會通過JTabbedPane.addTab()方法顯示JTabbedPane的菜單內容:
tabbedPane.addTab(menu.getTitle(), menu.getAPanel());
我需要知道如何做到這一點:當我點擊一個關聯標籤已經打開的菜單,它不會添加一個新標籤,而應該把焦點放在已經打開的標籤上。
例如,您可以在屏幕截圖中看到,我已經打開成本類型選項卡。現在,如果再次點擊費用類型菜單,它應該將焦點轉移到費用類型選項卡,而不是添加新的費用類型選項卡。
菜單本身有一個唯一的id字段(menu.getId())。但是,每次我點擊菜單時,menu.getAPanel()總是返回一個新的APanel實例。這意味着如果我點擊費用類型菜單兩次,APanel從menu.getAPanel()返回的第一次點擊,第二次點擊將永遠不會是同一個實例。
任何人都可以幫忙嗎?
UPDATE:
好吧,看來這個問題是混淆了其他人,說實話,我不是以英語爲母語,這就是爲什麼我有一個很難解釋我的問題,我已經找到了解決辦法呢(感謝MadProgrammer),所以我打算刪除這個問題,因爲我認爲它不會讓其他人受益,但爲了表彰MadProgrammer,我會將這個問題持續兩天,讓他有機會提交他的答案並得到他名不虛傳。
只有一點好奇:
這種情況下與my previous question連接。在原始源代碼中,當單擊菜單時,它實際上會顯示一個彈出窗口。我試圖改變流程:當單擊菜單時,隱藏彈出窗口,彈出窗口的內容面板(APanel)被提取並作爲選項卡的組件轉移到JTabbedPane中。
*「兩個選項卡或更多可以具有相同的標題/圖標」*聽起來對用戶非常混淆。我的建議,改變或以一種合理的方式解釋這個非同尋常的陳述。 –
您可以維護一個活動地圖,該地圖將每種菜單項的某種唯一鍵映射到其活動選項卡。如果該鍵不存在,則該選項卡不存在。 – MadProgrammer
@Andrew:是「/」嗎?在我國,「/」可以表示「或」。無論如何,我解決它,不知道它是否仍然讓你或其他人感到困惑。 – null