tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
777
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    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,
    Duckemai
    Geändert von Duckemai (08.02.10 um 19:47 Uhr)
     

  2. #2
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    Hey

    Mir ist da was aufgefallen...
    meineJTextArea.setCaretPosition(meineJTextArea.getText().length());
    Muss die Caret-Position nicht zwischen 0 und der Textlänge liegen? Also ich würde dort
    Code :
    1
    
    meineJTextArea.setCaretPosition(meineJTextArea.getText().length() - 1);
    einfügen.

    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
    CKingZesi
    Geä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...

  3. #3
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    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.
     

  4. #4
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    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
    CKingZesi
     
    Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...

Ähnliche Themen

  1. "setCaretPosition" klappt nicht immer
    Von vfl_freak im Forum Java
    Antworten: 2
    Letzter Beitrag: 10.07.09, 10:39
  2. Job immer wieder ausführen
    Von schuetzejanett im Forum Java
    Antworten: 3
    Letzter Beitrag: 22.08.07, 09:51
  3. Xp startet immer wieder neu
    Von Piddy im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 24.05.04, 21:33
  4. Immer wieder Probleme
    Von Fideli im Forum PHP
    Antworten: 4
    Letzter Beitrag: 09.03.02, 10:13