樓主的問題我也沒看懂~~~ 我正好也想在java里實現超連接的功能:在一個editor區域,有一段String,想使鼠標移到String上時,形狀變成手狀,點擊會一個新的窗口,請教各位!
如果解決了,我會開貼給分的,謝謝!

解决方案 »

  1.   

    主要就是java 的开窗问题了。我也在找这个问题的解决办法。
    关注
      

  2.   

    to:aiur(AIUR)
    在string的代码中加入:style="CURSOR: hand"  变成手打开新窗体:javascript
    function OpenBut()
    {
      window.open("OpenClose.htm","OpenColse","boolbar=no,menubar=no,left=100,top=100");

    其中openclose.htm为新窗体名。
      

  3.   

    这只是调用HTML的方法啊,我们在问的是Java自己的方法
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  4.   

    to caipeng27() 
    我是想在java的application中實現,不是在html里調用javascript,感謝你的關注to zhouwj(阿杰) 
    開窗問題?是新建一個窗口嗎?我想這個不是問題
    我是想在一個editor區域(例如JList,JTable等上)有一段string,可以超連,鼠標移到上方會變成手狀,而且超連的string最好還能設置顏色
      

  5.   

    你可以继承具体的控件来处理鼠标事件处理。
    http://www.delfan.com/java/urllabel.html有个例子你可以参考一下。
      

  6.   

    要实现超链接的新式很简单
    如:
    Jlabel1.setText("<html><a href=http://www.xxx.com>xxx</a>");
    但是鼠标事件不能连接到超链接啊?
    所以有没有什么java内部方法可以让浏览器打开并到超链接?
    我说得不是用Runtime或者Process
      

  7.   

    有一个比较简单的解决方案:你把向上向下做成按钮,在事件中open 一个新的Frame(JInternalFrame最好)不就行了吗?
    至于在JList,JTable中也可以触发事件,新开一个窗口,再就是象阿杰说的那样,可以用HTML来控制文本的显示,但是鼠标会不会变就不知道了。
    还有一种方法就是对应HTML的,就象JBuilder帮助里那样做的,数据源为HTML文档,然后把它读取来,就是用JEditorPane(对HTML版本支持较低,如果复杂的酒会显示不出来):
    下面是一个例子,会打开新浪,有些别的测试代码我删去了,运行可能会有错,如果有错自己改一下吧:import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.text.*;
    import javax.swing.text.html.*;
    import javax.swing.border.*;
    import javax.swing.colorchooser.*;
    import javax.swing.filechooser.*;
    import javax.accessibility.*;import java.awt.*;
    import java.text.*;
    import java.awt.event.*;
    import java.beans.*;
    import java.util.*;
    import java.io.*;
    import java.applet.*;
    import java.net.*;public class HtmlDemo extends JFrame{    JEditorPane html;    /**
         * main method allows us to run as a standalone demo.
         */
        public static void main(String[] args) {
    JFrame demo = new HtmlDemo();
        demo.setSize(800,600);
        JTable te =new JTable();    demo.setLocation(10,10);
    demo.show();
        String aa = new String("java");
        aa.replace('j','i');
        }    /**
         * HtmlDemo Constructor
         */
        public HtmlDemo(){
       super();
            try {
        URL url = new URL("http://www.sina.com.cn");
            
        try {
    //path = "/resources/index.html";
    //url = getClass().getResource(path);
                } catch (Exception e) {
    //System.err.println("Failed to open " + path);
    url = null;
                }
                if(url != null) {
                    html = new JEditorPane(url);
                    html.setEditable(false);
                    html.addHyperlinkListener(createHyperLinkListener()); JScrollPane scroller = new JScrollPane();
    JViewport vp = scroller.getViewport();
    vp.add(html);
                    this.getContentPane().add(scroller, BorderLayout.CENTER);
                }
            } catch (MalformedURLException e) {
                System.out.println("Malformed URL: " + e);
            } catch (IOException e) {
                System.out.println("IOException: " + e);
            }
        }    public HyperlinkListener createHyperLinkListener() {
    return new HyperlinkListener() {
        public void hyperlinkUpdate(HyperlinkEvent e) {
    if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
        if (e instanceof HTMLFrameHyperlinkEvent) {
    ((HTMLDocument)html.getDocument()).processHTMLFrameHyperlinkEvent(
        (HTMLFrameHyperlinkEvent)e);
        } else {
    try {
        html.setPage(e.getURL());
    } catch (IOException ioe) {
        System.out.println("IOE: " + ioe);
    }
        }
    }
        }
    };
        }}