V
ViktorW
Gast
Hallo,
ich habe ein JPanel, welches einem JScrollPane geadded wird.
Das JPanel dient als Ausgabefläche eines Chats. Die Nachrichten werden über zur Laufzeit erzeugte JLabels hinzugefügt.
Ich würde mein JScrollPane nun gerne so einstellen, dass es automatisch mit scrollt sobald neue Nachrichten eingehen, jedoch nur, wenn der Scrollbalken nicht gerade manuell benutzt wird. Schließlich soll der Benutzer in der Lage sein, seinen Chatverlauf durchzuschauen, ohne das der Balken bei jeder neuen Nachricht wieder nach unten springt.
Meine derzeitige Lösung scrollt zwar automatisch, lässt sich jedoch gar nicht mehr manuell bedienen:
Im Prinzip würde mir schon jeder bessere Ansatz helfen...
Wichtig ist jedoch, das ich ein JPanel als Basis fürs JScrollPane benutze! Keine TextArea oder Ähnliches.
Danke im Voraus!
ich habe ein JPanel, welches einem JScrollPane geadded wird.
Das JPanel dient als Ausgabefläche eines Chats. Die Nachrichten werden über zur Laufzeit erzeugte JLabels hinzugefügt.
Ich würde mein JScrollPane nun gerne so einstellen, dass es automatisch mit scrollt sobald neue Nachrichten eingehen, jedoch nur, wenn der Scrollbalken nicht gerade manuell benutzt wird. Schließlich soll der Benutzer in der Lage sein, seinen Chatverlauf durchzuschauen, ohne das der Balken bei jeder neuen Nachricht wieder nach unten springt.
Meine derzeitige Lösung scrollt zwar automatisch, lässt sich jedoch gar nicht mehr manuell bedienen:
Java:
// Autoscroll to bottom ...
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}
});
Im Prinzip würde mir schon jeder bessere Ansatz helfen...
Wichtig ist jedoch, das ich ein JPanel als Basis fürs JScrollPane benutze! Keine TextArea oder Ähnliches.
Danke im Voraus!