Swing 给JLabel加超链接

实现这样一个功能很简单,我们可以把它封装到一个类中,如果我们想把一个带图标的JLabel做成一个超链接效果,就可以给JLabel组件增加鼠标事件,来调用我们下边的代码,打开系统的默认浏览器。   

 

自己先封装一个打开浏览器的类:
package com.feng.logon;

import java.awt.Cursor;
import java.awt.Desktop;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.swing.JLabel;

/** *//**
*
* @author Anthrax
*此类负责检测系统的默认浏览器等程序,并负责启动它们
* @netSite 指定要显示的网址
*/
public class RunBrowser{
private Desktop desktop;
private URI uri;
private String netSite;
private Cursor hander;
/** *//** Creates a new instance of DesktopRuner */
public RunBrowser(){
    this.desktop = Desktop.getDesktop();
}
/**//*
*检测系统是否支持浏览器
*/
public boolean checkBroswer(){
    if(desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)){
        return true;
    }
    else{
        return false;
    }
}
/**//*
*运行默认浏览器,并在其中显示指定网址
*/
public void runBroswer(){
    netSite = "
http://www.baidu.com";
    try {
        uri = new URI(netSite);
    } catch (URISyntaxException ex){
        ex.printStackTrace();
    }
    try{
        desktop.browse(uri);
    } catch (IOException ex){
        ex.printStackTrace();
    }
}
/**//*
*改变鼠标形状
*/
public void changeMouse(JLabel label){
    hander = new Cursor(Cursor.HAND_CURSOR);
    label.setCursor(hander);
}
}

 

 


 

假如有这样一个JLabel,就可以给这个JLabel加超链接了

JLabel   jl=new JLabel("申请帐号");

LLogon.setCursor(new Cursor(Cursor.HAND_CURSOR));//这样也可以改变鼠标形状
    LLogon.addMouseListener(new   MouseAdapter(){  
      public   void   mouseClicked(MouseEvent   e){  
      try{     
      new RunBrowser().runBroswer();
      }catch(Exception   ex){  
      ex.printStackTrace();  
      }  
      }  
      });
  

 

注意上面的红色代码是调用的部分...一般放在构造函数里

你可能感兴趣的:(java,.net,swing,浏览器)