使用觸控筆時,我正在經歷一些奇怪的行爲。如何在擺動中處理多按鈕印刷機?
我正在解釋按下觸控筆側面的按鈕(RIGHT),並按下觸控筆(左)作爲「抓取」事件,但偶爾(通常爲0)事件剛剛被刪除。
MouseEvent的JavaDocs非常明確地說明了如果一次執行多個按鈕(左下,右下,右上,左上)而不處理同時按下按鈕,則如何處理多按鈕按下。
我還好奇,它們是作爲兩個mousePressed事件發射,還是作爲一個按鈕掩碼設置爲兩個按鈕,或其他完全?
謝謝。
使用觸控筆時,我正在經歷一些奇怪的行爲。如何在擺動中處理多按鈕印刷機?
我正在解釋按下觸控筆側面的按鈕(RIGHT),並按下觸控筆(左)作爲「抓取」事件,但偶爾(通常爲0)事件剛剛被刪除。
MouseEvent的JavaDocs非常明確地說明了如果一次執行多個按鈕(左下,右下,右上,左上)而不處理同時按下按鈕,則如何處理多按鈕按下。
我還好奇,它們是作爲兩個mousePressed事件發射,還是作爲一個按鈕掩碼設置爲兩個按鈕,或其他完全?
謝謝。
我會解釋API文檔如同時按下按鈕是根本不可能的:
當按下多個鼠標按鈕每次按下,釋放和單擊一個單獨的事件結果。
因此,有應該是單獨的事件。您觀察到的問題可能是由於您的代碼,手寫筆的驅動程序,硬件或Swing中的錯誤(按我看到的可能性遞減順序):
我試圖通過以下方式診斷問題:如果可能,記錄不同級別的事件。
同時按鈕按鍵被處理爲兩個單獨的mousePressed事件。運行Mouse Events Demo以查看它們單獨處理。
我記得,沒有辦法處理同時按下按鈕。我曾經做過的事情,以確保一次按下多個按鈕被這樣對待,我會爲每個按鈕有一個布爾變量,當它被按下時,我會將它設置爲true,當它被釋放時,我會設置布爾值爲false。然後,當執行某個操作時,我會檢查布爾變量(有時我會將actionlistener重定向到方法調用,以確定設置布爾值之後接下來會發生什麼操作)。如果你想要做的唯一事情是他們在同一時間被按下,但這不起作用,但如果你只是想讓組合工作,那麼我就是這麼做的。這是大約四年前,在Java 5之前,所以我可能是錯誤的。
關於可能性的遞減順序,通常我也會這樣做。我的代碼中的問題通常是對Java代碼的誤解。因此,閱讀文檔後,這是最初的問題。 – 2009-07-24 14:45:58