JEditorPane und Headlines

T

the Oracle

Hallo liebe Community!

Ich habe ein Problem mit Java - JEditorPane - und bräuchte eure Hilfe dabei.
Ich würde gerne, wenn man einen Button drückt, eine neue Headline einfügen.
Soweit so gut, das würde mit dieser Action ja funktionieren:
Code:
new HTMLEditorKit.InsertHTMLTextAction("h1", "<h1></h1>", HTML.Tag.BODY, HTML.Tag.H1);
doch dann wird eine komplett neue Headline ohne Text eingefügt.
Ich will aber, dass der selektierte Text dann als Headline angezeigt wird.

Hoffe ihr könnt mir helfen.

mfg
 
ich weis zwar nicht genau was du mit headline meinst aber waenn du diesen text ganz oben in die pane einfuegen willst wuerd ich das so machen:

String headline = "headline";
jeditorPane.setText(headline + jeditorPane.getText());

ich weis nicht ob das das ist was du wolltest... aber so kannst du auf jeden fall einen text vor den anderen text in die pane einfuegen

mfg hazelnoot
 
nein da hast du mich falsch verstanden.

Ich will einen Text den ich bereits in die EditorPane eingefügt habe als Headline (<h1></h1) darstellen - sprich in die spitzen Klammern einfügen.

Der oben angeführte Code erstellt nämlich nur "<h1></h1>" aber klammert nicht den selektierten Text ein.
 
hi!

ich hoffe ich habs nun richtig verstanden... ich hab dir mal einen beispielcode geschrieben! hoffe er hilft dir. habe ihn nicht getestet aber er muesste funktionieren. natuerlich koennte man ein paar variablen sparen aber fuer bessere lesbarkeit hab ich halt ein paar mehr verwaendet!

Code:
JEditorPane edit = new JEditorPane();

/*...*/

/*im action listener von dem jeweiligen button*/

int selStart = edit.getSelectionStart(), /*hohle startposition der selektierung*/
    selEnd = edit.getSelectionEnd();     /*hohle endposition der selektierung*/

String whole = edit.getText(); /*hohle den ganzen text aus der textbox*/
String selekted = whole.subString(selStart, selEnd); /*hohle den text der selektiert wurde*/

/*aendere den selektierten text
  in den fall muesste nur die variable selekted geaendert werden
  also einfach ein <h1></h1> vorne und hinten eingefuegt oder wie du halt willst*/
/*...*/

/*waenn der selektierte text entspraechend geaendert wurde, kann man diesen geaenderten text einfuegen
  (ueber den alten drueberschreiben)*/
edit.replaceSelection(selekted);


edit.setText(whole);

hoffe das ist das was du willst
mit diesem code kann man selektierten text eben ersetzen...

mfg hazelnoot
 
Soetwas in der Art hatte ich auch schon, doch gibt es Probleme damit:
1. Wenn ich den Text über substring herausfiltere, wird der falsche Text genommen.
2. Wenn ich den Text über editor.getSelectedText bekomme und dann einfüge wird der Text "<h1>text</h1>" auf die editorpane geschrieben und nicht text als Headline angezeigt.

mfg
 
hi!

damit man mit setText html/rtf text einfuegen kann muss man glaub ich noch was setzen im JEditorPane... siehe doku da steht das beschrieben wie das geht:
http://java.sun.com/j2se/1.5.0/docs/api/index.html

(da ist dann ein verweis : "A text component to edit various kinds of content. You can find how-to information and examples of using editor panes in Using Text Components, a section in The Java Tutorial." und da wird das dann genau erklaert!!)

hoffe das hilft dir weiter!

mfg hazelnoot
 
Das Tutorial kenne ich schon. Dort wird nur erklärt wie man die JEditorPane benutzt und vorgefertigte Actions verwendet werden.
 

Ähnliche Themen

Keine Zugriff von Windows 10 auf Sambafreigaben

Sambaserver im Netzwerk nicht sichtbar

Textformatierung nach Cut "\" nach jeder Zeile?

Hilfe! Mit Datenbank verbinden und Statements ausführen.

Hilfe bei Scriptanpassung für VMWare 5.1 HA und USV Shutdown

Zurück
Oben