Wie erhalte ich eine JEditorPane die volle Breite einer Linie zu markieren (nicht nur der Text)?

stimmen
4

Ich versuche, eine JEditorPane zu bekommen die volle Breite einer angezeigten Linie zu markieren. Alle Beispiele, die ich habe versucht, nur den Textinhalt markieren. Zum Beispiel, wenn ich Inhalte wie folgt aus:

 ---------------------------------
|Here is some text                |
|some more text                   |
 ---------------------------------

innerhalb eines JEditorPane durch die Tabelle oben dargestellt, dann Hervorhebung der ersten Reihe Highlights nur die ‚Hier ist ein Text‘ (dargestellt zwischen [und] unten).

 ---------------------------------
[Here is some text]               |
|some more text                   |
 ---------------------------------

Ich würde es gerne die volle Breite des JEditorPane wie folgt markieren:

 ---------------------------------
[Here is some text                ]
|some more text                   |
 ---------------------------------

Gibt es eine Möglichkeit, dies zu tun?

Veröffentlicht am 09/12/2008 um 18:03
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
4

Dies scheint nicht zu kompliziert. Ich würde das eine wenig macht Code-Herausforderung .

Nur Ihre eigenen Highlighter erstellen, erstreckt DefaultHighlighter.

Überschreiben Sie die paint()Methode und einfach unverändert lassen , die Breite des Rechtecks Farbe: es wird die Breite der Platte sein.

Sie werden in finden DZone Snippets ein komplettes Beispiel : kopieren und ausführen. Sag mir , wenn dies ist , was Sie nach. Es umfasst die textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));zusätzlich Sie in Ihrer Antwort erwähnen.

Alt-Text http://www.freeimagehosting.net/uploads/94a3a990e4.png

Beantwortet am 09/12/2008 um 22:23
quelle vom benutzer

stimmen
1

Um die Auswahl zu verhindern Hervorhebung stören VonC Lösung habe ich die folgende Zeile in dem TextHighlight Konstruktor (im Wesentlichen macht die Auswahl Highlight unsichtbar):

textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));
Beantwortet am 11/12/2008 um 16:52
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more