我的问题是添加了JTextArea
的{{1}}没有滚动到打印的最新行(滚动条保持在顶部)。
需要注意的是,行是在单独的JScrollPane
线程中打印的。
然而,如果我摆脱SwingWorker
中的SwingWorker
,滚动似乎工作正常。
有人可以给我一个如何处理这个问题的提示吗?
以下是我正在测试的代码(省略simulation()
):
import
答案 0 :(得分:4)
以下是我正在测试的代码(省略了导入):
为什么呢?我们可以复制/粘贴/测试的邮政编码。我不使用IDE,也不必花时间输入导入。
我测试时你的代码没有做任何事情。我在Windows 7上使用JDK8。
我必须在SwingWorker中循环后添加以下内容:
customOutputStream.flush();
没有滚动到打印的最新行(滚动条保持在顶部)。
它不会滚动,因为文本未附加到EDT上的文本区域。
JTextArea textArea = new JTextArea();
DefaultCaret caret = (DefaultCaret)textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
以上代码对我有用。
有关此问题的详情,请查看Text Area Scrolling。