Beinke: JEditorPane - maximale Stringlänge vorgeben

Hallo,
ich habe eine JEditorPane, in die man große Texte kopieren soll. Diese Texte sollen aber nicht größer als 1000 Zeichen werden. JEditorPane gibt mir dafür offenbar keine Hilfestellung (oder ich finde sie nicht).

Wie würdet Ihr an das Problem herangehen? Das ganze soll übrigens ein Applet werden - daher vorsichtshalber die Längenbeschränkung.

Beinke

  1. Hi Beinke,

    ich denke du wirst dir deine eigene Klasse dafür erstellen müssen, welche du von PlainDocument ableitest und dann die insertString Methode überschreibst.

    Ein Beispiel findest du in der Beschreibung von JTextField, das lässt sich dann auf dein Problem übertragen.

    MfG
    Otto

    1. Herzlichen Dank!
      Werde es morgen gleich mal ausprobieren.

      1. Ich habe es versucht, komme mit diesem Ansatz aber überhaupt nicht weiter (kenne mich da aber auch überhaupt nicht aus).

        Falls jemand so etwas schon mal codiert haben sollte, wäre ein Codebeispiel spitze.

        Beste Grüße!
        Beinke

        1. Es funktioniert doch (aber nur wenn ich Text per Copy & Paste einfüge). Ich dachte es würde auch klappen wenn ich selbst den Text eintippe. Das klappt so aber leider nicht.

          1. Hi Beinke,

            Es funktioniert doch (aber nur wenn ich Text per Copy & Paste einfüge). Ich dachte es würde auch klappen wenn ich selbst den Text eintippe. Das klappt so aber leider nicht.

            Sorry, so kann ich dir nicht helfen. Da ich keine Ahnung habe, was du jetzt konkret ausprobiert hast.

            MfG
            Otto

            1. Auch das 2. Problem ist gelöst!

              2. Problem (Eingabe auch beim Tippen beschneiden):
              Habe ich auch in der insertString() Methode realisieren können.

              Danke nochmal an alle für die hervorragende Hilfe!
              Beinke

  2. Guten Morgen,

    [...]
    Wie würdet Ihr an das Problem herangehen? Das ganze soll übrigens ein Applet werden - daher vorsichtshalber die Längenbeschränkung.

    Wenn es Dir reicht, dass die Begrenzungsprüfung beim Fokusverlust der EditorPane ausgeführt wird, dann könntest Du es mit einem InputVerifier machen (JComponent#setInputVerifier()).

    Schöne Grüße,

    Peter

    1. Hallo Peter,

      per Copy & Paste klappt's jetzt. Nur beim Tippen nicht.

      Da ich nicht so firm in Java bin:
      Hast Du einen Tip/Stichwort für die Überprüfung beim Tippen?

      Beste Grüße!
      Beinke

      1. Servus,

        [...]
        per Copy & Paste klappt's jetzt. Nur beim Tippen nicht.

        Bei der Lösung mit dem InputVerifier klappt es nicht beim Tippen? Was klappt denn nicht?

        [...]
        Da ich nicht so firm in Java bin:
        Hast Du einen Tip/Stichwort für die Überprüfung beim Tippen?

        Ansonsten bieten sich natürlich die guten Kumpels der Listener an (z.B. KeyListener), mit denen Du aber jedes einzelne Event selbst behandeln musst. Mein Favorit wäre schon die obere Lösung.

        Schöne Grüße,

        Peter

        1. Danke Dir!
          Hab's doch in der insertString() Methode hinbekommen.