gpt4 book ai didi

java - 在线程之间共享数据并且 JOptionPane 需要线程来运行!

转载 作者:行者123 更新时间:2023-12-02 08:25:41 26 4
gpt4 key购买 nike

            public void aMethod(){
new Thread(new Runnable() {

public void run() {
int decide = JOptionPane.showConfirmDialog(null, confirmName?, JOptionPane.YES_NO_OPTION);
}
}).start();
System.out.println("Number of decison " + decide); //Can't find symbol "decide"
}

<小时/>JOptionPane 如果不放入线程就无法运行(我不知道为什么)。然而,当把它放在一个线程中时,我无法从中得到变量决定。P/s:这是callbackImplement Java RMI中的一个方法。谢谢。新年快乐:P

最佳答案

您可以在 Runnable 子类中定义自定义字段并通过构造函数传递它们:

public class MyRunnable implements Runnable {
private int decide;

public MyRunnable(int decide) {
this.decide = decide;
}

public void run() {
...
}
}

至于为什么需要在自己的线程上调用Swing方法,可以阅读这篇文章:Threads and Swing 。事实上,您不应该创建自己的线程,而只需将其安排在 Swing 事件调度线程上:

SwingUtilities.invokeLater(new MyRunnable(decide));

关于java - 在线程之间共享数据并且 JOptionPane 需要线程来运行!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573047/

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