Я использую консоль для отображения ошибок и сообщений о статусе в приложении. Я могу показать и скрыть его, используя флажок, который работает очень хорошо. Моя проблема в том, что некоторые строки могут быть довольно длинными (например, если выбрано исключение), и если это последняя строка, Caret находится в самом правильном положении.Java отключает горизонтальную автопрокрутку в JTextArea
Я хочу отключить автопрокрутку в горизонтальном направлении, но держать ее вертикально. Кроме того, я НЕ хочу удалять полосу прокрутки и использовать linewrapping. Я просто хочу избавиться от моей консоли, всегда прокручиваемой вправо.
Я уже пробовал самостоятельно устанавливать положение Каре, но я не мог понять, где я должен это делать. Моя последняя попытка привела к сбою при маркировке текста, потому что я поместил код в метод 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' после записи нарушителей? – trashgod
К сожалению, нет, потому что я просто перенаправляю StdOut и StdErr в большинстве случаев. В некоторых я мог, но это лишь частично устранит проблему, даже если это хорошая идея! Спасибо за это –