2014-03-03 62 views
4

我想移動多個顯示器的計算機周圍的光標。但是,當我僅使用機器人的mouseMove功能時,它將無法正常工作。經過一番研究,我發現了this stackoverflow post,它幾乎可以工作。但是現在看起來GraphicsConfiguration和Robot都看到了不同的主顯示器。這意味着0,0對於另一個是1920,0。所以當我嘗試使用它時,我的鼠標總是轉移到另一個屏幕上。有沒有解決這個問題的通用方法,從而將光標相對於當前位置移動?Java使用鼠標移動與多個顯示器

我希望有人能幫助我。

我的代碼:

public static void moveCursor(int dx, int dy) { 
    try { 
     PointerInfo pi = MouseInfo.getPointerInfo(); 
     Point mp = pi.getLocation(); 
     GraphicsConfiguration gc = pi.getDevice().getDefaultConfiguration(); 
     Rectangle bounds = gc.getBounds(); 
     Point virtualPoint = new Point(mp); 
     virtualPoint.x -= bounds.x; 
     virtualPoint.y -= bounds.y; 
     Robot r = new Robot(); 
     r.mouseMove(virtualPoint.x + dx, virtualPoint.y + dy); 
    } catch (AWTException ex) { } 
} 

回答

1

嘗試

Robot r = new Robot(MouseInfo.getPointerInfo().getDevice()); 

根據該文件,就應該使機器人使用相同的GraphicsDevice爲MouseInfo.getPointerInfo()使用。