JEditorPane Text unterstreichen

proforma

Mitglied
Hallo,

nach langer erfolgloser Suche habe ich mich hier entschlossen meine Frage hier zustellen. Ich bekomme es einfach nicht hin(oder finde kein gutes Beispiel), das zeigt, wie man in einem JEditorPane den Text formatiert. Deswegen habe ich hier mal ein sehr einfaches Beispiel gepostet: Über den Button underline möchte ich nun den markierten Text unterstreichen. Wie bekomme ich das hin? Für den den Button habe ich in dem Beispiel schon mal einen ActionListener eingefügt.

Danke für eure Hilfe!


Code:
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.html.HTMLEditorKit;

public class HTMLDarstellenClass extends JFrame {

    private static final long serialVersionUID = 1L;

    private JEditorPane htmlPane, textPane;

    public HTMLDarstellenClass() {
        htmlPane = new JEditorPane();
        htmlPane.setContentType("text/html");
        
        htmlPane.addKeyListener(new KeyListener() {
            public void keyPressed(KeyEvent e) {
                System.out.println(e.getKeyChar() + " pressed");
           //     htmlPane.setEditable(false);
            }
            public void keyReleased(KeyEvent e) {
                System.out.println(e.getKeyChar() + " released");
           //     htmlPane.setEditable(true);
           //     htmlPane.repaint();
            }
            public void keyTyped(KeyEvent e) {
                System.out.println(e.getKeyChar() + " typed");
            }
        });
        
     
        
        
        JScrollPane htmlSP = new JScrollPane(htmlPane);
        textPane = new JEditorPane();
        textPane.setContentType("text/plain");
        JTabbedPane tabbedPane = new JTabbedPane();
        JScrollPane textSP = new JScrollPane(textPane);
        tabbedPane.add(htmlSP, "HTML");
        tabbedPane.add(textSP, "Quelltext");

        setURL();
        JPanel mainpanel = new JPanel();
        JPanel menupanel = new JPanel();
        JButton underline = new JButton("Unterstreichen");
        menupanel.add(underline);
        

        
        underline.addActionListener(new ActionListener() {

        	
        	
        	public void actionPerformed(java.awt.event.ActionEvent e) {
 
        
        		
        	}
        });
        
        
        mainpanel.setLayout(new BorderLayout());
        mainpanel.add(tabbedPane,BorderLayout.CENTER);
        mainpanel.add(menupanel,BorderLayout.NORTH);
        this.add(mainpanel);
        this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    private void setURL() {
        try {
            URL url = new URL("http://www.informatik.uni-kiel.de/~klh/DP/ue3_htmlterm.html");
            InputStream in = url.openStream();
            InputStreamReader isr = new InputStreamReader(in);
            StringBuffer buff = new StringBuffer();

            int len;
            while ((len = isr.read()) != -1) {
                buff.append((char) len);
            }
            in.close();
            isr.close();
            
            
            
            
            
            
            htmlPane.setPage(url);
            textPane.setText(buff.toString());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new HTMLDarstellenClass();
    }

}
 
Zurück