【发布时间】:2018-06-26 14:20:00
【问题描述】:
所以基本上我有一个JScrollPane,其中包含一个JTextArea。
public class Console extends JScrollPane {
private JTextArea textArea = new JTextArea();
public Console() {
super();
DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
setViewportView(textArea);
setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
setPreferredSize(new Dimension(1000, 400));
}
随着更新策略的设置,它会自动向下滚动到新添加的行。但是,如果我在文本区域中标记文本或自己上下滚动,这将不再起作用。新行不再显示,我必须自己向下滚动。
我什至尝试对每个新添加的行重新设置策略。
public void print(String txt) {
DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
textArea.append(getNewLogMsg(txt));
}
自动滚动仍然不起作用。 有什么建议吗?
【问题讨论】:
标签: java swing awt jscrollpane jtextarea