ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
777
777
EMPFEHLEN
-
Hallo zusammen,
habe das Forum schon durchsucht. Aber mein setCaretPosition() ist sozusagen mausetot.
Ich habe ein JTextArea, welches von einer txt-Datei befüllt wird. Nun soll mir aber die letzte Zeile angezeigt werden.
Ich habe rechts eine Scrollbar.
Mein Versuch:
meineJTextArea.read(new FileReader(DateiName), "");
meineJTextArea.setCaretPosition(meineJTextArea.getText().length());
Der Text wird angezeigt, aber er scrollt nicht runter.
Ich bekomme nicht mal beim Starten der Applikation den Focur rein. Selbst das hier unten:
meineJTextArea.setFocusable(true);
boolean test;
test= meineJTextArea.requestFocusInWindow();
ergibt für 'test' den Wert FALSE. Ist das ein Problem mit der Reihenfolge? Leider ist der Quelltext zu groß und aufgesplittet,
um ihn ganz hier aufzulisten. Gibt es dazu eine grundlegende Überlegung, die mir entgangen ist?
Über einen WindowListener hat es auch nicht geklappt.
Eins ist mir im Nachhinein noch aufgefallen. Wenn ich einen ActionListener per Button auslöse:
meineJTextArea.requestFocus();
meineJTextArea.setCaretPosition(meineJTextArea.getText().length());
selbst dann setzt er NICHT den Focus. Wenn ich aber ins JTextArea klicke und dann noch mal den Button drücke, dann scrollt er runter
Vielen Dank für jede Hilfe,
DuckemaiGeändert von Duckemai (08.02.10 um 19:47 Uhr)
-
Hey
Mir ist da was aufgefallen...
Muss die Caret-Position nicht zwischen 0 und der Textlänge liegen? Also ich würde dortmeineJTextArea.setCaretPosition(meineJTextArea.getText().length());
einfügen.Code :1
meineJTextArea.setCaretPosition(meineJTextArea.getText().length() - 1);
An dem Focus-Problem forsche ich noch ein bisschen.
Nachtrag: Hast du schon versucht beim Parent Komponenten deiner TextArea nachzuschauen
ob diese den Focus erhält?
Freundliche Grüsse
CKingZesiGeändert von CKingZesi (09.02.10 um 18:02 Uhr) Grund: Nachtrag: Parent-Component
Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...
-
Hallo,
habe nun den ganzen Tag an dem Problem rumgeschraubt. Bis mir auffiel, dass in meinem
setLayout(null)
immer nur die erste Komponente den Focus hatte. Ich dachte, es läge daran, dass ich
keinen Panel benutze, und statt dessen direkt in den Frame schreibe. Das war es aber nicht.
Das Problem war nun, dass ich in der main immer noch meinen:
Rahmen.setVisible(true)
stehen hatte. Das habe ich gelöscht und in einer der Methoden durch
this.setVisible(true)
ersetzt. Wenn ich dann dahinter meine Anweisungen für den Focus schreibe:
meineJTextArea.requestFocusInWindow();
meineJTextArea.setCaretPosition(meineJTextArea.getText().length());
dann klappt es. Na ja, vielleicht stolpern andere auch darüber und werden dann diesen Artikel lesen.
PS: @CKingZesi BESTEN DANK, ein -1 scrollt einfach nur eine Zeile weniger runter.
-
Hey,
Schön das du dein Problem lösen konntest. Ich habe halt "nur" die API gelesen und dort steht das der Caret
immer eine Position zwischen 0 und der Länge des Textes haben muss. Hat in diesem Fall halt nichts gebracht.
Freundliche Grüsse
CKingZesiEine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...
Ähnliche Themen
-
"setCaretPosition" klappt nicht immer
Von vfl_freak im Forum JavaAntworten: 2Letzter Beitrag: 10.07.09, 10:39 -
Job immer wieder ausführen
Von schuetzejanett im Forum JavaAntworten: 3Letzter Beitrag: 22.08.07, 09:51 -
Xp startet immer wieder neu
Von Piddy im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 24.05.04, 21:33 -
Immer wieder Probleme
Von Fideli im Forum PHPAntworten: 4Letzter Beitrag: 09.03.02, 10:13





Zitieren
Login





