gpt4 book ai didi

Java linux 如何 move 鼠标光标

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:25 25 4
gpt4 key购买 nike

我正在制作 3D 多平台应用程序,我想将鼠标光标始终设置为中间。 robot.mouseMove(x,y) 在 Windows 上工作得很好,但在 Linux 上它确实不起作用。

我有一个问题,是否有一种方法可以让我在 Windows、Linux、Mac 上将鼠标光标设置在特定位置。

*编辑
这就是我得到的并且在 Windows 上运行良好。

public class Frame extends JFrame implements KeyListener, MouseMotionListener, MouseListener{
private static final long serialVersionUID = 4887525192006201710L;
private Frame self = this;
private JPanel buffer = new JPanel(){
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(0,0, getWidth(), getHeight());
}
};
private Robot robot;

public Frame(String title){
super(title);
add(buffer);
setBounds(0,0, 640,480);
setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
setUndecorated(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);

try {
robot = new Robot();
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

addKeyListener(this);
addMouseMotionListener(this);

this.addComponentListener(new ComponentListener() {
public void componentResized(ComponentEvent e){
buffer.setBounds(0,0, getWidth(), getHeight());
}

public void componentHidden(ComponentEvent e){}
public void componentMoved(ComponentEvent e){}
public void componentShown(ComponentEvent e){}
});
}

@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getKeyCode() == KeyEvent.VK_ENTER){
self.dispatchEvent(new WindowEvent(self, WindowEvent.WINDOW_CLOSING));
}
}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}

@Override
public void mouseDragged(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mouseMoved(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Mouse moved");
robot.mouseMove(getX()+getWidth()/2, getY()+getHeight()/2);
}

@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}

@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}
}

最佳答案

*解决方案
嗯,机器人工作得很好。问题是没有问题(抱歉)。我以为机器人无法工作,因为 VirtualBox 没有将我的鼠标 move 到 Virtual Linux 上的屏幕中间,但后来我发现它正在工作,但由于启用了鼠标集成,我没有看到原始的内部操作系统光标。

对于那些运行 VirtualBox 并想要禁用鼠标集成的人,请按快捷键 hostkey(right ctrl) + I,您的光标将成为 native 虚拟操作系统光标。

关于Java linux 如何 move 鼠标光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32106278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com