Java Swing 中的MouseMotionListener:處理元件嵌套時的事件
在Java Swing 中,MouseMotionListener 介面讓程式設計師能夠回應滑鼠程式碼移動事件。但是,當多個元件相互嵌套時,事件傳播可能會變得複雜。本文解決了自訂 JScrollPane 的 MouseMotionEvents 被其嵌套元件阻塞的特定場景。
問題:阻塞巢狀元件中的事件
新增元件時出現問題到 JScrollPane,導致 MouseMoved 和 MouseDragged 事件被封鎖。這會阻止平移 JScrollPane 視圖的預期功能。
臨時方法:利用 JScrollPane 的滾動操作
此解決方案涉及利用 JScrollPane 中常用的現有操作在按鍵綁定中。這種方法允許透過滑鼠移動本身來觸發滾動。
實作:
示例代碼:
以下代碼片段演示了實現:<code class="java">// ScrollTimer class... // ScrollPane class... // ... public static void main(String[] args) { EventQueue.invokeLater(() -> new ScrollAction().display()); }</code>
好處:
注意:可以透過調整計時器呼叫次數的 N 值和計時器間隔的 DELAY 來自訂此方法。
以上是如何在 Java Swing 中的巢狀 JScrollPane 中處理 MouseMotionEvent?的詳細內容。更多資訊請關注PHP中文網其他相關文章!