2012-05-08 8 views
5

में क्लिक करने योग्य लिंक प्रदर्शित करने के लिए कैसे मैं जेडडिटरपेन में क्लिक करने योग्य लिंक की एक सूची प्रदर्शित करने की कोशिश कर रहा हूं। यहाँ मेरी कोड है:जेडडिटरपेन

import javax.swing.JEditorPane; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.event.HyperlinkEvent; 
import javax.swing.event.HyperlinkListener; 
import javax.swing.text.BadLocationException; 
import javax.swing.text.Document; 
import javax.swing.text.Style; 
import javax.swing.text.html.HTMLEditorKit; 
import javax.swing.text.html.StyleSheet; 


public class GUI extends JFrame{ 
    JEditorPane editorpane=new JEditorPane(); 
    //this is the constructor 
    GUI(){ 
     JFrame frame=new JFrame("Frame"); 

     frame.add(editorpane); 
     JScrollPane scroll=new JScrollPane(editorpane); 

     editorpane.setContentType("text/html"); 
     editorpane.setEditable(false); 
     editorpane.setText("<html><body>Test <a href='http://www.java.net'>" 
+ "www.java.net</a></body></html>"); 
     StyleSheet css = ((HTMLEditorKit) 
     editorpane.getEditorKit()).getStyleSheet(); 
     Style style = css.getStyle("body"); 
     editorpane.addHyperlinkListener(new HyperlinkListener() { 
     public void hyperlinkUpdate(HyperlinkEvent e) { 
     if (e.getEventType() == 
     HyperlinkEvent.EventType.ACTIVATED) { 
     System.out.println("Open browser: " + e.getURL()); 
     } 
     } 
     }); 
     frame.setSize(512, 342); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(scroll); 
     frame.show(); 
    } 
    public void append(String s) { 
    try{ 
     Document doc = editorpane.getDocument(); 
     doc.insertString(doc.getLength(), "\n", null); 
     doc.insertString(doc.getLength(), s, null); 

    } 
    catch(BadLocationException exc){ 
    } 
    } 
    //main method 
    public static void main(String args[]){ 

    GUI gui=new GUI(); 
    gui.append("<html><body>Test <a href='http://www.java.net'>" 
+ "www.java.net</a></body></html>"); 


    } 
} 

यह एक क्लिक करने योग्य लिंक दिखा रहा है, जब मैं setText() निर्माता में विधि का इस्तेमाल किया है, लेकिन फिर जब मैं संलग्न के साथ अतिरिक्त लिंक() प्रदर्शित करने के लिए कोशिश की, विधि यह पाठ के साथ एचटीएमएल टैग दिखा रही है और यह मेरे यूआरएल को हाइपरलिंक नहीं बनाती है। कोई विचार, यह संलग्न करने के साथ क्यों काम नहीं कर रहा है?

उत्तर

4

उपयोग HTMLEditorKit

public void insertHTML(HTMLDocument doc, int offset, String html, 
       int popDepth, int pushDepth, 
       HTML.Tag insertTag) 

में से किसी विधि या HTMLDocument

के तरीकों
public void insertAfterEnd(Element elem, String htmlText) 
public void insertAfterStart(Element elem, String htmlText) 
public void insertBeforeStart(Element elem, String htmlText 
public void insertBeforeEnd(Element elem, String htmlText) 
+0

धन्यवाद एक बहुत स्टानिस्लाव !! मैं इसे काम करने में कामयाब रहा :) मुझे एक ही पोस्ट पर आपकी एक और टिप्पणी मिली और दोनों ने मेरी समस्या को हल करने में मेरी मदद की। – curious