JEditorPane und Headlines

Dieses Thema: "JEditorPane und Headlines" im Forum "Java/Mono/dotGNU" wurde erstellt von the Oracle, 20.07.2006.

  1. #1 the Oracle, 20.07.2006
    the Oracle

    the Oracle Grünschnabel

    Dabei seit:
    09.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    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
     
  2. Anzeige

    schau mal hier --> (hier klicken). Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 hazelnoot, 20.07.2006
    hazelnoot

    hazelnoot www.mywm.dl.am

    Dabei seit:
    13.10.2005
    Beiträge:
    377
    Zustimmungen:
    0
    Ort:
    in Geiersberg
    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
     
  4. #3 the Oracle, 20.07.2006
    the Oracle

    the Oracle Grünschnabel

    Dabei seit:
    09.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    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.
     
  5. #4 hazelnoot, 20.07.2006
    hazelnoot

    hazelnoot www.mywm.dl.am

    Dabei seit:
    13.10.2005
    Beiträge:
    377
    Zustimmungen:
    0
    Ort:
    in Geiersberg
    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
     
  6. #5 the Oracle, 20.07.2006
    the Oracle

    the Oracle Grünschnabel

    Dabei seit:
    09.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    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
     
  7. #6 hazelnoot, 21.07.2006
    hazelnoot

    hazelnoot www.mywm.dl.am

    Dabei seit:
    13.10.2005
    Beiträge:
    377
    Zustimmungen:
    0
    Ort:
    in Geiersberg
    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
     
  8. #7 the Oracle, 22.07.2006
    the Oracle

    the Oracle Grünschnabel

    Dabei seit:
    09.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Das Tutorial kenne ich schon. Dort wird nur erklärt wie man die JEditorPane benutzt und vorgefertigte Actions verwendet werden.
     
Thema:

JEditorPane und Headlines