Java JScrollPane 切换自动滚动 on/off
Java JScrollPane toggle autoscroll on/off
我在 JScrollPane 中有一个 JtextArea 并且想在 AutoScroll 之间切换 on/off。
编辑:AutoScroll - 当 JTextArea 扩展时永久向下滚动到底部
对于自动滚动,我使用:
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" 切换到 "off"。但是再次切换 "on" 不起作用。
JtextArea 不可编辑。
谢谢=)
尝试以下操作:
textArea.setCaretPosition(textArea.getDocument().getLength());
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
另一种选择可能是使用 Smart Scrolling,它允许用户通过定位滚动条来控制滚动。
我在 JScrollPane 中有一个 JtextArea 并且想在 AutoScroll 之间切换 on/off。
编辑:AutoScroll - 当 JTextArea 扩展时永久向下滚动到底部
对于自动滚动,我使用:
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" 切换到 "off"。但是再次切换 "on" 不起作用。 JtextArea 不可编辑。
谢谢=)
尝试以下操作:
textArea.setCaretPosition(textArea.getDocument().getLength());
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
另一种选择可能是使用 Smart Scrolling,它允许用户通过定位滚动条来控制滚动。