【发布时间】:2009-08-27 09:15:20
【问题描述】:
我每秒钟将文本附加到文本区域我想覆盖或清除旧文本,我想每秒钟写入新数据如何在 java 中执行此操作?
谢谢罗刹
【问题讨论】:
-
你的代码在做什么? setText 应该删除当前文本并输入您指定的任何内容作为新文本。您传递给 setText 的参数是否可能实际上包含先前的文本以及附加的新文本?你能给我们看一下你的代码的sn-p吗?
我每秒钟将文本附加到文本区域我想覆盖或清除旧文本,我想每秒钟写入新数据如何在 java 中执行此操作?
谢谢罗刹
【问题讨论】:
我猜你说的是 Swing JTextArea。
你可以直接在上面调用setText(...)来替换文字:
JTextArea textArea = ...;
textArea.setText("Hello World");
【讨论】:
要定期做某事,您需要一些线程,但请注意使用SwingWorker。否则,您的 GUI 可能会冻结。
final JTextArea ta = frame.getjTextArea1();
SwingWorker worker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
while (true) {
ta.setText("");
ta.setText(new Date().toString());
Thread.sleep(1000);
}
}
};
worker.execute();
【讨论】: