我目前正在使用 JSwing 编写一个非常简单的程序。JTextArea ("textArea")
里面有一个JScrollPane ("textPane")
。我设法TextArea
用一个StyledDocument
命名的doc编辑了其中的文本和内容。但是,当我想在 while 循环中向该文档中插入一个字符串时,所有文本都会在循环结束后立即出现。我想要的效果是在Thread.sleep()
.
这是我的代码示例:
while (listening == false && a <= StoryInterface.getDiaNum()) {
doStoryMode(a, b);
Thread.sleep(100);
if (b == StoryInterface.getNumOfSentence()[a] - 1) {
b = 1;
a ++;
} else {
b ++;
}
}
哪里doStoryMode(a, b)
是调用doc.insertString(...)
. 该程序正在运行,但我无法一一看到事情发生。我试图通过编写textPane.repaint()
and来解决这个问题textArea.repaint()
,但都没有成功。我在网上搜索,有人说可以通过invokeAndWait()
方法解决,但是当我这样做时,显示错误消息“无法invokeAndWait
从事件调度程序线程调用”。
请帮我解决一下这个。我对这些概念真的很陌生。提前致谢。