2011-11-07 40 views

回答

2

你能確定你處於這個「圖像顯示」狀態嗎?圖像上升,您將狀態設置爲「圖像顯示」或其他。瀏覽你的小部件,並決定哪些應該在圖像啓動時死機。把它們變成這個狀態值的觀察者。當狀態改變時,它們或者根據需要啓用或禁用。圖像代碼不會直接對任何小部件進行任何操作。它只是聲明國家現在是「圖像顯示」。這是由觀察員決定如何處理該信息。

或使用GlassPane。這也起作用。當然,GlassPane關閉的一切都是。如果您需要更具選擇性,您需要更加精細的方法。

1

您可以使用臨時GlassPane實例通過向其註冊空聽衆來消費所有事件。

1

使用未修飾的模態JDialog來顯示圖像。在使對話框可見之前,您需要啓動計時器。當計時器在400毫秒內觸發時,關閉對話框。

1

我有類似的問題,通常發現它的設計問題,讓我在那種情況下。既然如此,我仍然必須找到它。爲了解決這個問題,我保留了一個我想要禁用的元素的列表(停止監聽),並在計時器的開始和結束時遍歷它們。對於按鈕應該是這麼簡單:

for(Component c : listOfToggledComponents){ 
    c.setEnabled(shouldItBeEnabled); 
} 

對於按鈕,這將變灰的按鈕。類似的事情發生在其他鞦韆組件上。

+0

我不推薦這個解決方案。 – mre

+0

也許一個解釋,爲什麼可能有利於OP和我自己。不過,我也喜歡Steve J的建議,儘管它是一種類似的迭代方法。 –

相關問題