我有一個簡單的JTabbedPane組件與兩個選項卡。當一個按鈕事件在其中一個選項卡上觸發時,我希望當前視圖立即設置爲的其他選項卡。我可以成功獲取當前選項卡,以便在有問題的按鈕的actionPerformed方法中使用setSelectedIndex(int)進行切換,但按鈕事件的其餘功能有時可能需要一段時間才能完成。Java JTabbedPane切換選項卡立即
似乎setSelectedIndex(int)更改不會立即發生,並且只有在按鈕單擊/按鈕觸發的actionPerformed方法的主體完成時纔會發生。
當按鈕被點擊/按下時,我想切換標籤的原因是,用戶可以在另一個標籤上的文本區域看到一條消息,告訴他們「正在處理,請稍候」等等,而剩餘的按鈕點擊功能被執行。該功能的結果,當他們到達時,將取代「......請稍候」的消息。
所以現在發生的事情是,我點擊按鈕,它凍結在該選項卡上,直到按鈕功能完全完成,然後切換。所以「......等待」信息實際上從來沒有見過。
我不知道該怎麼做。也許,爲「功能」創建一個新線程,讓按鈕單擊事件啓動線程,以便按鈕事件可以在等待結果時完成並切換選項卡。 只是大聲思考。任何幫助表示讚賞。
-Rob
你可能想要做的事情實際上有些不同:如果你仔細想想,並且看到複雜的應用程序(如IDE),你會注意到它們通常不會打擾*「Please wait」*嵌入的消息在每個標籤/子標籤/子屏幕/任何應用程序。他們所做的就是將一個進度條放在應用程序的任意**部分,並從用戶所在應用程序的任何「部分」更新進度條。與一些瀏覽器總是顯示*%每個頁面的*總是加載在同一個地方。在我看來,這是一個更好的設計。 – SyntaxT3rr0r 2011-04-17 14:07:47
一個進度條會很棒,但我對此有點急,而且我絕對沒有時間執行跟蹤剩餘時間的事情。我明白你的意思,但是,當你說簡單地把信息放在應用程序的某個普遍區域時,我可能會考慮它。 – Rob 2011-04-17 15:34:15