我在自动更新的textPane(在scrollPane内部)中有一个长文本。更新后,窗格将滚动到textPane的顶部。我该如何停用“顶部滚动”功能(就像textArea一样)。我无法使用textArea,因为我使用HTML在窗格中设置了文本样式。我不能用textArea做这种风格,对吗? :(

public void create(){
    ...
    scrollpane.setViewportView(textPane);
    textPane.setEditable(false);
    textPane.setContentType("text/html");
    ...
}

public void update(String text){
   textPane.setText(text);
}


感谢帮助!

解:

public void update(final String iv_outputText) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {

            ((DefaultCaret) textPane.getCaret())
                    .setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
            textPane.setText(iv_outputText);
        }
    });
}

最佳答案

((DefaultCaret)textPane.getCaret()).setUpdatePolicy(DefaultCaret.NEVER_UPDATE)


您可以尝试插入符号的更新策略

09-11 18:51