何かを返す必要があるメソッドがあり、それを行うために 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
ます。これは単なる例です。