Java JScrollPane切换自动滚动开启/关闭

时间:2017-05-30 14:11:26

标签: java jscrollpane jtextarea autoscroll

我在JScrollPane中有一个JtextArea,想要在AutoScroll之间切换。

编辑:AutoScroll - 当JTextArea扩展时,永久滚动到底部

对于Autoscroll我使用:

DefaultCaret caret = (DefaultCaret)textPane.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

哪个工作正常。 作为交换机我使用复选框:

    JCheckBox chckbxNewCheckBox = new JCheckBox("AutoScroll");
    chckbxNewCheckBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            if(chckbxNewCheckBox.isSelected()){
                caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
            } else {
                caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
            }
        }
    });

使用此方法,我可以切换默认" on"到"关"。但转换" on"再次不起作用。 JtextArea不可编辑。

谢谢=)

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

textArea.setCaretPosition(textArea.getDocument().getLength());
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

另一种选择可能是使用Smart Scrolling,允许用户通过定位滚动条来控制滚动。