欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 网站制作教程 >

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

发表于2019-04-23 23:01| 次阅读| 来源网络整理| 作者session

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

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