我在编写/更新文本区域时遇到问题。我从readtemp函数获取一个值,调用系统输出函数后可以看到结果,但是Textarea中什么也没有出现。可能是什么问题呢?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
URL temp;
try
{
temp = new URL("http://192.168.1.25/status.xml");
while (true)
{
System.out.println("Homerseklet: " + readtemp(temp));
jTextArea1.append(readtemp(temp));
}
}
catch (MalformedURLException ex)
{
Logger.getLogger(Download.class.getName()).log(Level.SEVERE, null, ex);
}
}
最佳答案
更正:这将无济于事,因为无限循环仍将永远阻止EDT ...没关系!
while循环是一个非常糟糕的主意,但是如果您坚持要这样做,则至少可以让EDT通过异步分派附加程序来更新UI:
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
jTextArea1.append(readtemp(temp));
}
});