Automatisches Scrollen bei JScrollPane

Status
Nicht offen für weitere Antworten.

vegeta

Aktives Mitglied
Hallo,

hab ein kleines Problem und brauch eure hilfe.

Ich hab ein JScrollPane in dem ein JEditorpane liegt.
füge ich neuen text in das JEditorPane springt der JScrollbalken nach oben, also zum Anfang.
ich möchte aber kein scrollen. JScrollpane passt in dieser zischenzeit die Ansicht, also setzt die neue
größe und so weiter.
ich hab es geschaft zurück an die stelle zu scrollen wo ich war, problem ist, dass ich das mitbekomme wie die scrollpane nach oben scrollt und dann wieder
zurück.

Hat jmd einen Vorschlag?

vielleicht das repaint verhindern, aber ich weis nciht wie

danke
 
Ich weiß nicht, habe mal die API-Doc ein wenig durchstöbert. Vielleicht kann das hier helfen. Hatte keine Zeit, mir das näher anzusehen.
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JViewport.html#setScrollMode(int)
 
hallo,

danke ich hab mir das angeschaut, leider komme ich damit nicht weiter habe es auch schon ausprobiert. Die einstellungen werden meines wissen dafür verwendet wenn die balken schmieren und nicht richtig arbeiten.

ok gruss Said
 
Was möchtest Du denn? Dass die TextArea immer an die unterste Stelle scrollt und nicht zum anfang zurück?
 
Hallo,

nein ich will das nicht gescrollt wird wenn ein neuer text in das TextPane eingefügt wird. weil jetzt so wie sun das ganze implementiert hat, wird immer an die erste stelle gescrollt wenn etwas zu der Textpane hinzugenommen wird, weil während dieses vorgangs auch die neue größe festgelegt werden muss

gruss said
 
Noch einmal:
Soll ans Ende der ScrollPane gescrollt werden - das geschieht nicht automatisch - oder soll der angezeigte Bereich fest bleiben?
Angenommen ich befinde mich in den Zeilen 5-15 (sichtbarer Bereich) und füge 10 Zeilen dazu. Soll dann 15-25 sichtbar sein oder weiterhin 5-15?
 
Folgende Methode ins Programm einbauen:

Code:
	public void autoscroll() {
		Point point = new Point( 0, (int)(jTextArea.getSize().getHeight()) );
		jScrollPane1.getViewport().setViewPosition( point );
	}


Die ruftst du einfach auf, direkt nachdem du etwas in dein Textarea geschrieben hast.
zB
Code:
jTextArea.append("> "+msg_savfilbef+"\n");
autoscroll();
[/quote]
 
....aber ich glaube ich habe deine Frage falsch verstanden. Die ist einfach für mich unverständlich geschrieben 😉
 
hi,

ich benutze ein JTextPane müßte jedoch das selbe sein, ausser vielleicht das ich das darunterliegende document schreibe.
folgendes hab ich gemacht was vielleicht einen ählichen ansatzt hat wie von dir. das ganze funktioniert auch nur das immer wenn etwas neues rein kommt also in datachanged der scrollbalken nach oben scrollt und im anschluß holle ich den wieder an die ursprungliche position nur das ist unschön beim lesen wenn plötzlich der text weg ist

Code:
oldPosition = scrollPane.getViewport().getViewPosition();
dataChanged();
scrollPane.getViewport().setViewPosition(new Point (0,(int)oldPosition.getY()));
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben