gpt4 book ai didi

java - 在 setOnAction 事件中调用方法并评估命令

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

这是我的代码:

noProxyButton.setOnAction(e -> {
this.setStatusField("Deactivating proxy...");
System.out.println("Deactivating proxy...");
String request = "powershell.exe "
+ "-Command \"Set-ItemProperty "
+ "-path \'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\' "
+ "ProxyEnable -value 0";
try {
this.runIt(request);
} catch (IOException ex) {
Logger.getLogger(MLSOps.class.getName()).log(Level.SEVERE, null, ex);
}

...

public void setStatusField(String value){
statusField.setText(value);
}

问题在于 setStatusFielde 事件结束后调用。输出上的经典打印正在评估并显示“调用 runIt 之前”。

为什么这么晚调用setStatusField

最佳答案

只需使用线程即可。不确定从“编程规则”的角度来看它是否“清晰”(也许有人可以回答),但它有效:

Thread t1 = new Thread (new Runnable() {
@Override
public void run() {
MLSOps.setStatusField("Deactivating proxy...");
}
});
t1.start();


Thread t2 = new Thread (new Runnable() {
@Override
public void run() {
try {
runIt();
} catch (IOException ex) {
Logger.getLogger(MLSOps.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
t2.start();

关于java - 在 setOnAction 事件中调用方法并评估命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294503/

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