I have the following use-case:
I have code executing in Thread A (not EDT). Then I want to ask the user a question, but this must be done on the EDT as it involves Swing code (opening a dialog etc). Finally, I want to pass the user's answer back to Thread A, so it can continue.
I'm struggling to find a good way to pass the user's answer back to Thread A. How do you do this?
FutureTask<Integer> dialogTask = new FutureTask<Integer>(new Callable<Integer>() {
@Override public Integer call() {
return JOptionPane.showConfirmDialog(...);
}
});
SwingUtilities.invokeLater(dialogTask);
int result = dialogTask.get();