2013-01-02 52 views
3

新年快樂程序員!是否可以用Java Swing程序替代老鼠?

想象一下在兩臺鼠標的計算機上運行的雙人Java Swing遊戲。 是否可以爲每個玩家分配一個鼠標,並依次鎖定每個 鼠標,然後將活動鼠標交換? 這兩個鼠標將共享相同的MouseListener方法。

我看不出互聯網提及這種可能性,但我覺得 這種情況已經訪問過。

georgeFK

+4

我相信這是不可能的。只有一個遊標。 Java無法區分哪個硬件鼠標正在控制光標。 – Adam

+0

兩隻老鼠都控制着MouseEventDemo。所以以有限的方式起作用。 –

回答

3

問題是設備在底層操作系統層處理。大多數系統將輸入合併爲單個虛擬鼠標,這就是爲什麼您可以同時使觸控板和USB鼠標處於活動狀態的原因。當然,當你嘗試使用它們時,會導致指針移動中的衝突。

我想你會實現這一點的方法是通過將直接與一個特定的鼠標設備的本地方法。所以你可以使用這兩個對象來輪詢每個鼠標並控制屏幕上的遊戲控制。

3

這是可能的,但在純Java當然不是這樣的話你將不得不使用一些JNI

結帳ManyMouse

ManyMouse是一個圖書館,它將多個鼠標的輸入提取到一個小型的跨平臺API中。它意味着與 遊戲和具有獨特輸入需求的非傳統應用程序一起使用。在大多數平臺上,它至少可以使所有的USB鼠標都可用,但在很多情況下可以使串行鼠標和內置的筆記本電腦觸控板 也可用。

下面是一些或其他原因的源代碼,一切都爲不可用實際網站:

0

一個有趣的問題。整個MSDN Mouse Input manual沒有提到控制信號來自哪個鼠標。

當然,它有BIOS命令,但是這樣你的代碼只能用於特定的計算機。

所以,如果你想要一個通用的解決方案,你應該寫你自己的「雙鼠標驅動程序」。或者在網上尋找。

相關問題