Announcement

Collapse
No announcement yet.

Text farbig darstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Text farbig darstellen

    Hallo,

    in einem kleinen Programm lese ich aus einem TextFeld die Position bestimmter Wörter aus. Diese Wörter möcht ich jetzt einfärben.

    Hat jemand einen "Dreizeiler" für dieses Problem.

    Danke
    Bastie
    --
    w³: http://www.Bastie.de - Informationen rund um Java und Performance

  • #2
    Hallo Sebasitian,<br>
    habe das Problem noch nicht verstanden: Willst Du Teile eines Textes,<br>
    der in einem JTextField steht, einfärben?
    <p>
    Klau

    Comment


    • #3
      Nicht gerade eon JTextField aber JA..

      Comment


      • #4
        Das funktioniert nicht in einem Dreizeiler, da Du nicht ohne weiteres Text selektieren kannst, der nicht zusammenhängend ist.
        Sieh Dir dazu mal http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html an

        Comment


        • #5
          Das Einfaerben an sich ist nicht das grosse Problem, und auch die Einzel-Selektion ist es nicht (dann geht man halt einfach durch den Text durch). Viel interessanter ist, wie man das Einfaerben mit dem Update des Dokuments verknuepft, so dass ein KeyWord die Farbe verliert, wenn man es aendert und die Farbe erhaelt, wenn es eines wird. Denn ueber copy/paste kann man auch ohne load- und save-Routinen beliebig grosse Textbloecke in JEDES Swing-Text-Element einfuegen, und das will dann geparst und moeglichst in Echtzeit mit Attributen versehen werden ...<p>
          Fuer den ersten Ansatz waer ein "Offline"-Einfaerben, welches Du mit zwei ShortCuts steuerst (ein/aus) sicher das sinnvollste, so kannst Du Dich in das javax.swing.text-Paket einarbeiten, wobei Du brauchst:
          <pre>
          StyledDocument doc = myTextPane.getStyledDocument();
          int start = (wo das Einfaerben losgeht)
          int len = (Laenge, wieviele Zeichen eingefaerbt werden soll)
          SimpleAttributeSet sas = new SimpleAttributeSet();
          StyleConstants.setForeground(sas, aColor);
          doc.setCharacterAttributes(start, len, sas, false);
          </pre><p>
          Wie gesagt, ein wenig Einarbeitung ist noetig, und den try/catch-Block kriegst Du sicher allein drum.<p>
          Ciao, Marc

          Comment


          • #6
            Hallo Sebastian,

            versuch dich dochmal in javax.swing.text.Highlighter einzulesen. Sieht nach dem aus was du suchst.

            Hoffe geholfen zu haben

            Hans-Christop

            Comment

            Working...
            X