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

标签 java events methods

这是我的代码:

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/

相关文章:

java - 增加线程数量是否会使生产者消费者概率更快?

java - 从 AST 生成代码的最佳设计?

c# - 我怎样才能为表单中的任何 child 捕获 MouseLeftButtonDown 事件,即使 child 捕获了这个事件?

python - 将代码存储在列表或字典中?

c++ - 如何自动化鼠标操作

javascript - 如何阻止函数被视为 javascript 对象中的属性?

java - 递归地将数字总和减少到一位数

java - native 函数未找到实现

javascript - 在 JavaScript 中将方法作为参数传递的惯用方法

java - Tomcat 和我的 JSP/Servlet 应用程序之间的区别?