Highlighting in der JTextArea

B

ByeBye 249712

Hallo ich habe folgendes Problem. Ich möchte bestimmte Eingaben in einem Textfeld farbig
hervorheben und habe hierzu folgenden code in der GUI erstellt:

Code:
 public void init(Controller mController) {

    Highlighter hilite = textarea.getHighlighter();
    Highlighter.Highlight[] hilites = hilite.getHighlights();

    for (int i = 0; i < hilites.length; i++) {
      if (hilites[i].getPainter() instanceof MyHighlightPainter) {
        hilite.removeHighlight(hilites[i]);
      }
    }
        highlight(textarea);
        


     public static void highlight(JTextComponent textarea) {
    try {
      Highlighter hilite = textarea.getHighlighter();
      Document doc = textarea.getDocument();
      hilite.addHighlight(2,7, new MyHighlightPainter(Color.red));
    } catch (BadLocationException e) {
      e.printStackTrace();
    }
  }

In das Textfeld kann man Eingaben machen welche dort
auch angezeigt werden, allerdings geht das Highlighting noch nicht.
Kann mir jemand helfen und sagen was ich da übersehen habe.
Vielen Dank
 
Darauf wird gerne verwiesen :)
Wenn es irgendwie möglich ist würde ich es gerne mit der JtextArea machen.
Es sei denn es wird wirklich zu aufwendig, da ich das gerade nicht
hinbekomm nen JTextPane zu implementieren. Warum auch immer,
da gibts dann methoden die das TextPane nicht nutzen kann, macht irgendwie nur Probleme.
 
Hi,
also falls du mit dem JTextPane nicht klar kommen solltest... Ich habe da mal einen Highlighter gemacht, der auch hier im Forum zu finden ist. Du kannst ihn dir gerne mal ansehen und vielleicht ein paar Anregungen holen.
eigener Syntax-Highlighter

Gruß

Fabio
 
hei,

Danke für den Link.
Ich hab jetzt mal ein JTextPane implementiert.
Allerdings habe ich nur eine Zeile in der ich Text eingeben
kann. Woran kann das denn liegen?
Die Höhe und Breite geb ich ihm eigentlich mit.
Diese wird auch angezeigt, also das Textfeld hat die Maße, aber man kann
eben nur in die oberste Zeile hineinschreiben.
Hast du da einen Tip. wäre echt dankbar dafür :) :

Code:
        textarea = new JTextPane();
        this.textarea.setPreferredSize(new Dimension(500,400));

Hat den keiner eine Idee :(
Es geht erstmal nur darum das JTextPane zu implementieren.
Ich kann ihm nicht direkt eine Höhe bzw Breite mitgeben.
Er verlangt ein Styled Document, allerdings hab ich das
auch noch nicht einbinden können.
Wäre echt dankbar wenn da jemand ne Idee dazu hätte.

schöne grüße
 
Zurück