我正在用Java編寫遊戲,這是我試圖讓「漂亮」的第一個遊戲。這款遊戲被稱爲Bantumi--這是一款棋盤遊戲,現在我正在編制動作動畫。問題在於,當運動動畫運行時,棋盤仍然會獲得鼠標事件,如果用戶選擇了新動作,運行動畫將被丟棄。如何在窗口上暫時阻止鼠標偵聽器?
對於主板,我使用了擴展JLayeredPane的類。這我如何有我的圖層:
第0層:與種子的孔,所以用戶選擇一個爲運動,每個孔是與MouseListener的JPanel。
1層:這標誌着當前選定的孔
層2中的突出顯示:運動的動畫。
層10:自定義通知系統類,我寫的,它說的東西,如「現在輪到你了」,「重複轉向」,「你贏了」,等等。
我想,以防止一切可能的鼠標事件動畫運行時的任何這些圖層,我該怎麼做?我認爲在頂級選手中添加一個覆蓋整個區域的面板已經足夠,但它不起作用。任何解決方法?
這正是我需要的。我嘗試了類似的東西,唯一的區別是我沒有將鼠標監聽器添加到頂部窗格,我認爲這是必要的。謝謝。 – 2012-02-20 22:55:10
@DanielRivas:是的,這是必要的,因爲組件必須是可見的,並且必須捕獲鼠標事件才能工作。否則,鼠標事件將滑過。 – 2012-02-20 23:07:30
因爲GlassPane可以阻止來自MouseXxx的事件,所以KeyListener可以工作並繼續監聽鍵盤事件,因爲[Disabled Glass Pane](http://tips4java.wordpress.com/2008/11/07/disabled-glass-pane/ )@camickr – mKorbel 2012-02-20 23:25:53