自动向下滚动JTextArea以显示添加的最后几行

use*_*256 4 java user-interface swing scrollbar jtextarea

我编写了一个Java应用程序,每隔10秒从服务器接收一次信息.我想在表单上显示此信息.

目前我正在使用JTextArea.但是,一旦填充了JTextArea,我就看不到添加到此JTextArea的新信息.我是否需要向JTextArea添加滚动条?或者是否有一个全新的GUI表单控件,建议显示每隔x秒添加一次的信息?

Pau*_*gas 10

DefaultCaret试图使自己可见,这可能导致滚动文本组件JScrollPane.可以通过该DefaultCaret#setUpdatePolicy方法更改默认插入符号行为.

假设您的变量名称是textArea,您只需要修改插入符号的策略:

DefaultCaret caret = (DefaultCaret) textArea.getCaret(); // ?
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);       // ?
...
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(textArea);
Run Code Online (Sandbox Code Playgroud)

*谢谢,mKorbel

  • 请使用`DefaultCaret caret =(DefaultCaret)textArea.getCaret();`和`caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);`相反, (5认同)