作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一个方法需要返回一些东西,并且需要在 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
以外的东西同样,这只是一个例子。
最佳答案
您可以按照以下步骤进行:
public String askQuestion()throws Exception
{
final StringBuilder sBuilder = new StringBuilder();
java.awt.EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
String response = JOptionPane.showInputDialog(null, "What is 2+2?");
sBuilder.append(response);
}
});
return sBuilder.toString();
}
String sResponse;//make sResponse a field of class xyz
public String askQuestion()throws Exception
{
java.awt.EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
String response = JOptionPane.showInputDialog(null, "What is 2+2?");
sResponse = response;
}
});
return sResopnse;
}
关于java - 如何最好地从方法中的匿名类返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15705843/
我是一名优秀的程序员,十分优秀!