Я разрабатываю небольшой виджет калькулятора, который ведет текущий журнал вычислений.Предполагается прокручивать до конца журнала каждый раз, когда добавляется новая запись.Эта часть, кажется, работает нормально.Проблема в том, что, когда я нажимаю кнопку калькулятора, которая не добавляется в журнал, панель журнала всегда прокручивается обратно вверх, и полоса прокрутки исчезает.Как я могу удержать его от этого?
Код, добавляемый в журнал:
private JTextPane logArea; //This is placed inside a JScrollPane
private void log(String m, SimpleAttributeSet a) {
int len = logArea.getDocument().getLength();
logArea.setEditable(true);
logArea.setCaretPosition(len);
logArea.setCharacterAttributes(a, false);
logArea.replaceSelection(m);
logArea.scrollRectToVisible(new Rectangle(0,logArea.getBounds(null).height,1,1));
logArea.setEditable(false);
}
Код, который, кажется, работает со свитком:
private void addDigit(char digit) {
if (clearDisplayBeforeDigit) {
clearNumDisplay();
}
if (numInDisplay.getText().length() < maxNumDigits) {
if (digit == '.') { //Point
if (!hasPoint) { //Only one point allowed
hasPoint = true;
String newText = numInDisplay.getText() + ".";
numInDisplay.setText(newText);
}
} else { //New digit
String newText = numInDisplay.getText() + digit;
numInDisplay.setText(newText);
}
}
}