您当前的位置: 首页 > 网站编程 > JSP教程 > 用JDK6中新特性快速把JLabel做成超链接

用JDK6中新特性快速把JLabel做成超链接

作者:guanchaofeng 来源:本站整理 发布时间: 2008-09-19 16:38 点击:
用过NetBeans的朋友可能会发现,在NB的窗体界面中,有一些JLabel以图标形式出现,当鼠标点击这些label标签时,会自动打开我们的浏览器,并导航到相应的网站。 这个功能看起来似乎比较简单,可能有的朋友会想到用Runtime来调用本地浏览器。但这个方法太呆板了

用JDK6中新特性快速把JLabel做成超链接

用过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);
}
}

分享到:
本文"用JDK6中新特性快速把JLabel做成超链接"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4