gpt4 book ai didi

java - 如何在非事件派发线程中间提示确认对话框

转载 作者:搜寻专家 更新时间:2023-10-31 08:29:44 25 4
gpt4 key购买 nike

我有以下 fun 将由非事件调度线程执行。在线程中间,我想要一个

  1. 弹出一个确认框。线程暂停执行。
  2. 用户做出选择。
  3. 线程将获得选择并继续执行。

但是,我发现以线程安全的方式做到这一点并不容易,因为对话框应该由事件调度线程显示。我试试

public int fun()
{
// The following code will be executed by non event dispatching thread.
final int choice;
SwingUtilities.invokeAndWait(new Runnable() {

@Override
public void run() {
// Error.
choice = JOptionPane.showConfirmDialog(SaveToCloudJDialog.this, message, title, JOptionPane.YES_NO_OPTION);
}
});
return choice;
}

当然这不会起作用,因为 choice 是最终的,我不能将对话框的返回值分配给它。

实现上述 3 个目标的正确方法是什么?

最佳答案

你试过吗:

public int fun()
{
// The following code will be executed by non event dispatching thread.
final int[] choice = new int[1];
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
// Error.
choice[0] = JOptionPane.showConfirmDialog(SaveToCloudJDialog.this, message, title, JOptionPane.YES_NO_OPTION);
}
});
return choice[0];
}

关于java - 如何在非事件派发线程中间提示确认对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750128/

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