何かを返す必要があるメソッドがあり、それを行うために UI に何かを表示する必要がある場合 (たとえば、ユーザーに質問するため) java.awt.EventQueue.invokeLater(new Runnable() {...});、UI スレッドで実行します (Android は を使用して同様のことを行いますrunOnUiThread()) 。 . そこから何かを返すにはどうすればよいRunnableですか? 例えば:
public String askQuestion()
{
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
String response = JOptionPane.showInputDialog(null, "What is 2+2?");
//how do I return this response object to the method?
}
});
}
コンパイルで割り当てが許可されないため、最終的なローカル変数を使用できません。クラス変数を使用してアクセスできますClass.this.<variable>が、これを達成するための最良/唯一の方法はありますか?
編集:これ以外のものも返す必要がありStringます。これは単なる例です。