Tengo el siguiente código:JScrollPane y JList desplazamiento automático
listModel = new DefaultListModel();
listModel.addElement(dateFormat.format(new Date()) + ": Msg1");
messageList = new JList(listModel);
messageList.setLayoutOrientation(JList.VERTICAL);
messageScrollList = new JScrollPane(messageList);
messageScrollList.setPreferredSize(new Dimension(500, 200));
messageScrollList.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}
});
se desplaza hacia abajo de automóviles. Pero, si trato de retroceder para volver a leer un mensaje, fuerza un desplazamiento hacia abajo. ¿Cómo puedo solucionar esto?
El tipo de ajuste es el mismo en ambos casos. He intentado esto para desplazarme hacia abajo si se agrega un mensaje. Pero si lo hago, el último mensaje agregado no es visible. No se desplaza lo suficiente hacia abajo. ¿Cómo puedo resolver eso? – dododedodonl
Hmm ... Bueno, una cosa que podrías hacer sería tener una variable booleana en algún lugar que se configure cuando agregas algo a la lista. Luego, en su controlador, verifique si la variable está configurada. Si es así, usted realiza el ajuste (y desarma la variable) de lo contrario, lo ignora. De esta forma, solo se agregará un desplazamiento hacia abajo por artículo a la lista. –