设为首页设为首页
 添加收藏添加收藏
 进入音乐版音 乐 版
  汉南在线网页设计JSP动态程序

用JDK6中新特性快速把JLabel做成超链接
作  者:匿名
关键字:JSP



用过NetBeans的朋友可能会发现,在NB的窗体界面中,有一些JLabel以图标形式出现,当鼠标点击这些label标签时,会自动打开我们的浏览器,并导航到相应的网站。

这个功能看起来似乎比较简单,可能有的朋友会想到用Runtime来调用本地浏览器。但这个方法太呆板了,有很大的局限性。首先,如果通过本地路径来调用,势必在可移植性上打了折扣。因为不同系统之间,不可能有相同的系统路径。其次,如果用户有多个浏览器,如既安装了ie还安装了firefox,而用户平时更喜欢在firefox中浏览网页,我们就不能强迫他用ie来打开我们要显示的信息。

而我们现在不需要为这些功能费脑细胞了,因为在JDK6中新增加的Desktop类为我们解决了这个问题。它不仅允许我们可以检测并打开默认浏览器,还允许我们检测并打开默认的邮件客户端,以及打开编辑和打印文件的功能。

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

代码如下:

package org.anthrax;

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 DesktopRuner {
  private Desktop desktop;
  private URI uri;
  private String netSite;
  private Cursor hander;
  /** Creates a new instance of DesktopRuner */
  public DesktopRuner() {
    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://mybass.china-pub.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);
  }
}



来源:网络
阅读:600
日期:2007-11-22

【 双击滚屏 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:深入理解Java初始化的含义
下一篇:用jsp实现SQLServe数据库的备份和恢复

  >> 相关文章
 
  ·深入理解Java初始化的含义
  ·深入剖析JSP和Servlet对中文的处理
  ·浮动菜单是如何作出来的mouse事件
  ·浅谈Java的标准数据流
  ·浅谈Java的历史与特性
  ·浅析JSP开发中的对象和范围属性
  ·每个Java初学者都应该搞懂的六个问题
  ·步入SWT/JFace世界,你还等什么
授权使用:汉南在线 http://www.hzwz.net/(2008-2009)   
Copyright (c) 2002-2007 汉南在线. All Rights Reserved . 
经营许可证:陕ICP备05000109号 Powered by:汉南在线