Java 关于JTextArea刷新和JScrollPane自动向下滚动
我正在尝试将信息记录到JTextArea,因为该过程是在后台进行的。当用户单击按钮时,我希望消息可以立即显示在JTextArea中,当JTextArea已满时,JScrollPane可以自动向下滚动 我在stackoverflow中尝试了很多方法 JTextArea可以立即刷新,但是JScrollPane仍然不能自动向下滚动 最后,我找到了一个方法,我将代码放在线程中,如下所示Java 关于JTextArea刷新和JScrollPane自动向下滚动,java,swing,Java,Swing,我正在尝试将信息记录到JTextArea,因为该过程是在后台进行的。当用户单击按钮时,我希望消息可以立即显示在JTextArea中,当JTextArea已满时,JScrollPane可以自动向下滚动 我在stackoverflow中尝试了很多方法 JTextArea可以立即刷新,但是JScrollPane仍然不能自动向下滚动 最后,我找到了一个方法,我将代码放在线程中,如下所示 public class MyRunnable implements Runnable { @Overrid
public class MyRunnable implements Runnable
{
@Override
public void run()
{
//code......
}
}
public class nodeListBtnListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
Runnable threadJob = new MyRunnable();
Thread myThread = new Thread(threadJob);
myThread.start();
}
}
......
text = new JTextArea(20,18);
//important
DefaultCaret caret = (DefaultCaret)text.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
......
JScrollPane可以自动向下滚动
这些代码是不需要的
text.setSelectionStart(text.getText().length());//not needed.
text.update(text.getGraphics());//not needed
text.setCaretPosition(text.getDocument().getLength());//not needed
我的问题是,当我将JScrollPane放入线程时,为什么它可以向下滚动?是滚动到
JTextArea
中特定点的一个示例。通常,当我想滚动到底部时,我只是将插入符号位置设置为字符串的长度,可能会稍微复杂一些,但会显示setCaretPosition
的用法。如果这些都不起作用,那么您需要提供一个可运行的示例,说明您正在做的事情不起作用