JEditorPane / HTMLEditorKit

ChMaster

Mitglied
Servus zusammen,

habe da ein kleines Problem. Ich möchte in einem JEditorPane
eine sogenannte Liste erstellen, per Knopfdruck. Dies soll auch funktionieren
wenn ich ein Text markiert habe.

z.B. so:
  • Test
  • Test 2
  • usw.

Wie bekomme ich sowas hin?

Derzeit mach ich es so: (funktioniert nicht wirklich ....... warum?)
Code:
	private void setList()
	{
		int caretPos = editPane.getCaretPosition();
		HTMLDocument doc = ( HTMLDocument ) editPane.getDocument();
		
		try
		{
			( ( HTMLEditorKit ) editPane.getEditorKit() ).insertHTML( doc, caretPos, "<UL><LI>", 0, 0, HTML.getTag( "ul" ) );
			editPane.setCaretPosition( caretPos + 1  );
			editPane.select( editPane.getSelectionStart(), editPane.getSelectionEnd() );
		}
		catch ( BadLocationException e ) { e.printStackTrace();	}
		catch ( IOException e ) { e.printStackTrace(); }		
	}

Oder gibt es auch eine andere Lösung?
 
Zuletzt bearbeitet:
Servus leude,

anscheinend hat keiner eine Lösung auf meinen ersten Post?

Nun habe ich ein erneutes Problem, diesmal mit dem center tag. Das Problem besteht darin das er mir einen <body> tag setzt, dies ist aber falsch.....
HTML:
    <body align="center">
      Objectives<br><br>Normal Operation<br>
    </body>
zuerstmal mein code zu diesem problem:
Java:
    private void setTextAlignment( ActionEvent ae ) {

        try {
            SimpleAttributeSet attributeSet = new SimpleAttributeSet();
            DefaultStyledDocument styledDoc = (DefaultStyledDocument)jepHtml.getDocument();

            int selectionStart = jepHtml.getSelectionStart();
            int selectionEnd = jepHtml.getSelectionEnd() - selectionStart;

            if( ae.getSource() == jbRight ) {
                StyleConstants.setAlignment( attributeSet, StyleConstants.ALIGN_RIGHT );

            } else if( ae.getSource() == jbCenter ) {
                StyleConstants.setAlignment( attributeSet, StyleConstants.ALIGN_CENTER );

            } else if( ae.getSource() == jbLeft ) {
                StyleConstants.setAlignment( attributeSet, StyleConstants.ALIGN_LEFT );
            }

            styledDoc.setParagraphAttributes( selectionStart, selectionEnd, attributeSet, true );
            styledDoc.setCharacterAttributes( selectionStart, selectionEnd, attributeSet, false );
            jepHtml.select( selectionStart, selectionEnd );

        } catch( Exception exception ) {
            exception.printStackTrace();
        }
    }
und hier die Ausgabe aus meiner JEditorPane:
HTML:
<html>
  <head>
    
  </head>
  <body>
    <body align="center">
      Objectives<br><br>Normal Operation<br>
    </body>
    <ul>
      <li>
        Dangerous Goods as freight
      </li>
      <li>
        Dangerous Goods in cabin
      </li>
    </ul>
  </body>
</html>
 
Zurück