Link to home
Start Free TrialLog in
Avatar of help_me
help_me

asked on

Make a URL appear as a working link in a textarea component

I'm developing an applet which receives results from a database and then appends the results string to
a textarea component. The string contains a url which I want to appear as a working link when appended to the
textarea. I was thinking about a method which would allow you to append url objects to the textarea, but I cannot find anything, the only method I found was to append a string. Is there a solution to this or a possible work-around.
Ultimately I need to be able to link from the url which is retrieved from the database.

Thanks
Melanie
Avatar of evijay
evijay

You have to use a JFC Swing component HTML Text pane to do this instead of text area.
Or else, you can use html component from sun instead of text area.
ASKER CERTIFIED SOLUTION
Avatar of evijay
evijay

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of help_me

ASKER

Please can you give me a url for the class description of the htmltextpane class, I have found textpane at:

http://www.dstc.uts.edu.au/java/swing-0.4.1/doc/api/com.sun.java.swing.basic.BasicTextPane.html

I found no reference to an html text pane, this is what I would like to use.

Thanks
The following are the places to look for

a) SwingSet demo program file HtmlPane.java
   here is the code too

           URL url = new URL(swing.javaDocPath + "/packages.html");
           html = new JEditorPane(url);
           html.setEditable(false);
           html.addHyperlinkListener(this);
           JScrollPane scroller = new JScrollPane();
           scroller.setBorder(swing.loweredBorder);
           JViewport vp = scroller.getViewport();
           vp.add(html);
           vp.setBackingStoreEnabled(true);
           add(scroller, BorderLayout.CENTER);

b) Everything about JEditorPane
      http://java.sun.com/products/jfc/swingdoc-current/index.html


Since you are not getting the data from a url, u need to
extend JEditorPane class, tweak some of its methods
Avatar of help_me

ASKER

Thanks for the code, could you please explain how I should tweak the editor pane constructor method so that it is able to append a string of database results. Once these results have been appended, I need the urls which were fetched to show up as working links, will the HyperlinkListener be able to look at the text in the editorpane and work out where the links are?

I have not been able to get the HyperlinkListener to work in the following test program. It gives me this error - Explicit cast needed to convert Applet1 to com.sun.java.swing.event.HyperlinkListener.

import java.awt.*;
import java.awt.event.*;
import com.sun.java.swing.*;
import java.lang.*;
import java.net.*;
import java.applet.*;
import java.util.*;

public class Applet1 extends Applet
{

public void init()
{
   
    try
    {
    URL url = new URL("http://www.ox.ac.uk");
    JEditorPane html = new JEditorPane(url);
    html.setEditable(false);
    html.addHyperlinkListener(this);
    JScrollPane scroller = new JScrollPane();
    scroller.setBorder(Swing.loweredBorder);
    JViewport vp = scroller.getViewport();
    vp.add(html);
    vp.setBackingStoreEnabled(true);
    add(scroller, BorderLayout.CENTER);
    }
   
    catch (java.lang.Exception ex)
    {
    ex.printStackTrace();
    }
     

}
}

Thanks for your help.