У меня есть JtextArea, в которой я должен добавить текст, и я хочу, чтобы он прокручивался вниз при добавлении нового текста. Я сделал следующее, но это не сработает.Как прокручивать в JTextArea
showFrame = new JFrame("Gui Console");
showArea = new JTextArea();
showArea.setBorder(new TitledBorder("Console"));
showArea.setPreferredSize(new Dimension(500, 400));
showArea.setMinimumSize(new Dimension(500, 400));
showArea.setMaximumSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));
showArea.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
JScrollBar vertical = scrollPane.getVerticalScrollBar();
scrollPane.getVerticalScrollBar().setValue(vertical.getMaximum());;
}
public void removeUpdate(DocumentEvent e) {
}
public void changedUpdate(DocumentEvent e) {
}
});
Единственный способ, который работает, чтобы установить
showArea.setPreferredSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));
но окно становится слишком большим, и я не хочу.
http://stackoverflow.com/questions/1627028/how- to-set-auto-scrolling-of-jtextarea-in-java-gui – kiheru
Не используйте ни один из методов setPreferred/Minimum/Maximum. Текстовая область автоматически пересчитывает предпочтительный размер при добавлении текста. – camickr