【发布时间】:2015-03-10 18:32:19
【问题描述】:
我使用控制台在我的应用程序中显示错误和状态消息。我可以使用复选框显示和隐藏它,效果很好。我现在的问题是有些行可能很长(例如,如果抛出异常),如果它是最后一行,插入符号就在正确的位置。
我想禁用水平方向的自动滚动,但保持垂直方向。另外我不想删除滚动条并使用换行。我只是想摆脱我的控制台总是向右滚动。
我已经尝试自己设置插入符号的位置,但我无法真正弄清楚我应该在哪里设置。我最后一次尝试是在标记文本时导致崩溃,因为我将代码放入 caretUpdate 方法中,这似乎是错误的地方。
//Prevent horizontal autoscroll
textArea.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
try {
textArea.setCaretPosition(textArea.getLineStartOffset(textArea.getLineCount() - 1));
} catch (BadLocationException e1) {
e1.printStackTrace();
}
}
});
【问题讨论】:
-
你能在违规条目后附加
\n吗? -
不幸的是不是真的,因为在大多数情况下我只是重定向 StdOut 和 StdErr。在某些情况下我可以,但这只能部分解决问题,即使这是一个好主意!谢谢你
标签: java swing textarea jtextarea autoscroll