JScrollPane immer bis ganz nach unten scrollen lassen

Status
Nicht offen für weitere Antworten.
M

_mike_

Gast
Hallo,

habe ne kurze (und hoffentlich einfache) Frage. Ich habe ein JTextArea, das in ein JScrollPane eingebettet ist. Der Text wird von einem anderen Thread geschrieben, wird also nicht manuell eingegeben. Nun ist es so, dass wenn mein TextArea überfüllt ist und die Scrollbalken erscheinen, der Text zwar unten angefügt wird, aber der vertikalle Balken nicht automatisch bis zur untersten Zeile heruntergescrollt wird.

Meine Frage ist also, ob man mit einem einfachen API-Funktionsaufruf das so einstellen kann, dass der vertikalle (der horizontale ist mir unwichtig) Scrollbalken immer bis ganz nach unten heruntergescrollt wird. Habe dazu nichts in der API finden können. Ach ja, und das ganze soll auf Java 1.4 laufen :).

mike
 

SebiB90

Top Contributor
dem textfeld ein chagelistener hinzufügen und in dem dann:
Code:
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setValue(vertical.getMaximum());
so müsste es gehen, habs aber nicht getestet
 

Jörg

Bekanntes Mitglied
ich glaub sowas wie
Code:
textarea.setCaretPosition(textarea.getText().length())
scrollt auch nach unten ...
 
M

_mike_

Gast
Danke für die Antworten, habe es aber noch nicht zum Laufen gebracht, da ich einen ChangeListener nicht auf ein JTextArea anwenden kann (laut API). Habe es stattdessen mit einem CaretListener versucht, aber da ich den Text nicht manuell angebe, wird kein CaretEvent ausgelöst. Nun versuche ich explizit die Methode fireCaretUpdate(CaretEvent event) auszulösen, weiß aber nicht wie ich ein CaretEvent erzeugen soll. Mein Code sieht so aus (das ist ein Ausschnitt)
Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;

public class PrintWindow extends JPanel implements CaretListener {
	
	private JTextArea textarea;
	
	public PrintWindow(String title) {
	
		textarea = new JTextArea();
		textarea.addCaretListener(this);
		textarea.setEditable(false);

		JScrollPane jsp = new JScrollPane(textarea);
						
		this.setLayout(new BorderLayout());
		this.add(jsp, BorderLayout.CENTER);	
	}

   // diese Methode wird extern aufgerufen, um Text ins JTextArea zu schreiben 
	public void append(String text) {
		textarea.append(text);
      // löse ein CaretEvent aus
		fireCaretUpdate( ... wie erzeuge ich hier ein CaretEvent? ... );
	}


	public void caretUpdate(CaretEvent evt) {
     // tue irgendwass, um den Text nach unten zu scrollen, z.B. 
		textarea.setCaretPosition(textarea.getText().length());
	}
	
}
 
M

_mike_

Gast
Habe gerade das Problem gelöst und zwar indem ich alle Listener rausgeschmiessen und die Methode append() so umgeschrieben habe :)
Code:
 // diese Methode wird extern aufgerufen, um Text ins JTextArea zu schreiben
   public void append(String text) {
      textarea.append(text);
      textarea.setCaretPosition(textarea.getText().length());
   }

Danke für die Antworten. Übrigens falls jemand ne Antwort auf meine Frage von vorhin (wie man ein CaretListener erzeugt) weis, dann bitte posten. Würde es gerne wissen, aus reiner Neugierde.

Gruß, mike
 

Jörg

Bekanntes Mitglied
hm du meinst wie du einen CaretEvent erzeugst???
Weil den Listener hast ja schon gebaut gehabt ...

Denke mal das hast du mit setCaretPosition schon getan :)
Dieser Event wird doch wohl immer dann erzeugt,
wenn sich der Caret ändert, was du mit der set-Methode ja wohl explizit
tust. Du könnest jetzt einen Listener bauen und dir dein
Ergebnis im CaretListener ankucken (oder sontwas machen)

1. du appendest Text
2. änderst den Caret selbst, da dein append das nicht tut
3. die textarea registriert die caret-Änderung und feuert den CaretEvent
4. dein caretlistener bekommt den event und du könntest dann
darauf reagieren (was du gar nicht willst, du wolltest ja nur scrollen LOL)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JScrollPane immer ganz unten ausrichten AWT, Swing, JavaFX & SWT 17
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
A Scrollbalken von JScrollPane immer anzeigen AWT, Swing, JavaFX & SWT 2
vogella JTable und JScrollPane - ScrollPane immer in der Mitte AWT, Swing, JavaFX & SWT 2
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
B Swing JScrollPane scrollt nicht AWT, Swing, JavaFX & SWT 10
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
N Swing JScrollPane mit Tastatur bedienen? AWT, Swing, JavaFX & SWT 0
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
MaxG. Swing JScrollPane AWT, Swing, JavaFX & SWT 10
Soloeco Swing JScrollPane AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
J JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 5
B LayoutManager GridBagLayout und JScrollPane AWT, Swing, JavaFX & SWT 5
Thallius JScrollPane Scrollpos setzen nach Neuzeichnen AWT, Swing, JavaFX & SWT 3
P MalProgramm mit JScrollPane und Canvas AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
V JScrollPane im zur Laufzeit verändernden JFrame AWT, Swing, JavaFX & SWT 0
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
Bluedaishi JScrollpane AWT, Swing, JavaFX & SWT 0
L JScrollPane scrollt nicht !! AWT, Swing, JavaFX & SWT 3
F JScrollPane Position setzen (x=0, y=0) AWT, Swing, JavaFX & SWT 2
R JScrollPane überdeckt JPanel? AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
S JScrollPane und BorderLayout AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
F JTable mit JScrollPane AWT, Swing, JavaFX & SWT 4
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
J Swing JTextPane mit JScrollPane auf JPanel scrollen nicht AWT, Swing, JavaFX & SWT 6
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
B Swing JPanel in JScrollPane einfügen AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Transparentes JScrollPane AWT, Swing, JavaFX & SWT 0
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
A Swing JScrollPane Problem AWT, Swing, JavaFX & SWT 6
H Swing JScrollPane mit "viel Inhalt" scrollt zu langsam (inkl. See-For-Yourself.jar :D) AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane in JScrollPane - Problem AWT, Swing, JavaFX & SWT 3
K Bug in JScrollPane? AWT, Swing, JavaFX & SWT 4
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
M JScrollPane Header AWT, Swing, JavaFX & SWT 3
G JScrollPane über JScrollPane AWT, Swing, JavaFX & SWT 2
V LayoutManager JScrollPane verwirft Elementanordnung AWT, Swing, JavaFX & SWT 3
B JScrollPane Problem AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane AWT, Swing, JavaFX & SWT 7
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
F 2D-Grafik Skalieren der Scrollbars beim Zoomen einer JScrollPane AWT, Swing, JavaFX & SWT 4
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
C jPanel auf jScrollPane zentrieren AWT, Swing, JavaFX & SWT 3
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
U Swing JPane und JScrollpane in JSplitpane-Seite: Scrollen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
S JScrollPane reagiert nicht AWT, Swing, JavaFX & SWT 3
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
D LayoutManager JScrollPane mit dynamischem Inhalt AWT, Swing, JavaFX & SWT 8
P Swing JScrollpane AWT, Swing, JavaFX & SWT 2
V Swing JScrollPane Viewport verschieben AWT, Swing, JavaFX & SWT 2
J JScrollPane Probleme AWT, Swing, JavaFX & SWT 3
S Swing JScrollPane verliert Scrollbars AWT, Swing, JavaFX & SWT 5
D Swing JTable in JScrollpane beliebig verbreitern AWT, Swing, JavaFX & SWT 5
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
xehpuk Swing Line-wrapping von JTextPane (in JScrollPane) AWT, Swing, JavaFX & SWT 3
M JScrollPane Problem AWT, Swing, JavaFX & SWT 6
S Swing JScrollpane und ViewPort AWT, Swing, JavaFX & SWT 4
D JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 12
X JScrollPane funzt net... AWT, Swing, JavaFX & SWT 5
H jscrollpane AWT, Swing, JavaFX & SWT 12
RELAXccc Swing JTree + JScrollPane, refresh Problem AWT, Swing, JavaFX & SWT 17
A Problem mit JScrollPane in einer JScrollpane AWT, Swing, JavaFX & SWT 4
B JScrollPane Problem AWT, Swing, JavaFX & SWT 25
T Swing JScrollPane- und Tabelle-Header Problem AWT, Swing, JavaFX & SWT 25
P Swing JScrollPane-Inhalt: Grösse anpassen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben