gpt4 book ai didi

java - 在 JavaFX 阶段使用 java.awt.Robot 安全吗?

转载 作者:行者123 更新时间:2023-11-30 07:42:40 26 4
gpt4 key购买 nike

我在阶段 init() 方法中有以下代码,以便在窗口打开时按“SPACE”:

Platform.runLater(() -> {
try {
java.awt.Robot r = new java.awt.Robot();
r.keyPress(java.awt.event.KeyEvent.VK_SPACE);
r.keyRelease(java.awt.event.KeyEvent.VK_SPACE);
} catch (Exception e) {
e.printStackTrace();
}
});

但是由于 Robot 属于 java.awt 包,并且知道 JavaFX 与 Swing/awt 运行在不同的线程中,所以我不知道这是否安全。我只知道它能满足我的要求,但它会一直有效吗?我应该将此代码替换为其他代码吗?

最佳答案

是的,我在普通线程中使用了它(不使用 Platform.runLater()),即使使用这样的 UI 事件,它也能正常工作:

static Robot robot=null;

private void initialize(){
Thread hilo=new Thread(new Runnable(){
@Override
public void run() {
try {
robot=new Robot();
robot.waitForIdle();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}});

hilo.start();
}

然后是事件方法

public static void handleMultiSelectIn(){
try{
if(togleMulti.isSelected())
robot.keyPress(KeyEvent.VK_CONTROL);
System.out.println("In:"+togleMulti.isSelected());
}catch(Exception e){
e.printStackTrace();
}
}

关于java - 在 JavaFX 阶段使用 java.awt.Robot 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34440691/

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