2011-09-24 39 views
1

我有LayeredPane與兩個JPanel s,全部在JFrameJPanel s設置爲透明,setOpaque(false)。但是,我想捕捉鼠標事件(如果它有所不同)(透明的面板)。這是可能的,還是應該從底層的JFrame做到? (它肯定會從JFrame捕獲;從透明幀捕獲事件只是更合乎邏輯的意義)。Java:MouseEvent透明JPanel

回答

4

您可以捕獲附加到MouseListener上的鼠標事件,也不會被添加了MouseListeners的組件以及正在鋪設在原始JPanel上的組件所阻塞。這看起來很適合創建一個GUI最簡單的小測試類,它沒有任何GUI界面,但這說明了您的問題和有希望的解決方案。

此外,請注意透明度除了作爲注意力分散以外不會發揮任何作用。

+1

*「透明度不會發揮任何作用,除非作爲分心」*嗯,這使得難以找到面板點擊首先。 ;)海事組織最透明度增加了視覺效果,同時降低了可用性。 –