用过NetBeans的朋友可能会发现,在NB的窗体界面中,有一些JLabel以图标形式出现,当鼠标点击这些label标签时,会自动打开我们的浏览器,并导航到相应的网站。
这个功能看起来似乎比较简单,可能有的朋友会想到用Runtime来调用本地浏览器。但这个方法太呆板了,有很大的局限性。首先,如果通过本地路径来调用,势必在可移植性上打了折扣。因为不同系统之间,不可能有相同的系统路径。其次,如果用户有多个浏览器,如既安装了ie还安装了firefox,而用户平时更喜欢在firefox中浏览网页,我们就不能强迫他用ie来打开我们要显示的信息。
而我们现在不需要为这些功能费脑细胞了,因为在JDK6中新增加的Desktop类为我们解决了这个问题。它不仅允许我们可以检测并打开默认浏览器,还允许我们检测并打开默认的邮件客户端,以及打开编辑和打印文件的功能。
这里我只给大家演示打开默认浏览器的功能,实现这样一个功能很简单,我们可以把它封装到一个类中,如果我们想把一个带图标的JLabel做成一个超链接效果,就可以给JLabel组件增加鼠标事件,来调用我们下边的代码,打开系统的默认浏览器。
代码如下:
java 代码
- 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;
-
-
-
-
-
-
-
-
-
-
- public class DesktopRuner {
- private Desktop desktop;
- private URI uri;
- private String netSite;
- private Cursor hander;
-
- 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);
- }
- }
分享到:
相关推荐
JDK8新特性 JDK8是Java开发平台的最新版本,自从1995年Java的诞生以来,Java已经发展了二十多年, Java仍是企业和开发人员的首选开发平台。JDK8新特性课程内容包括了解Java发展史、Lambda表达式、接口的增强、函数...
jdk8新特性,百度云盘。jdk8新特性,百度云盘。jdk8新特性,百度云盘。
6. **JDK7新特性<六> 监听文件系统的更改** 这个特性允许程序注册监听文件或目录的改变,当文件系统发生变动时,可以立即响应,增强了实时性和效率,特别是在文件监控应用中非常有用。 7. **JDK7新特性<七> 遍历...
jdk5、jdk6新特性系统介绍.chm 系统、全面 本人自己整理的资料
JDK1.5新特性
JDK 10 是 Java 开发工具包的一个重要版本,引入了多项新特性,旨在提高开发人员的效率和代码的简洁性。以下是 JDK 10 的主要特性详解: 1. 局部变量类型推断(Local Variable Type Inference) 在 JDK 10 中,...
jdk8新特性.md
Jdk8新特性例子,内容包含 接口默认方法, 函数引用, java.util.stream api 和java.time api map的新增方法等。例子采用记事本编写,下载者需自行下载jdk8安装并配置好环境,编译(javac)运行(java)
视频教程地址:http://www.gulixueyuan.com/course/56
以上只是JDK1.8部分重要特性的简介,这份PDF文档将详细解释这些特性的使用和API的变更,帮助开发者更好地理解和利用JDK1.8。通过阅读和实践,你将能够提升你的Java编程技巧,编写出更加高效、简洁的代码。
多版本JAR文件允许一个JAR包含针对不同Java版本的类,这解决了库开发者面临的挑战:既要兼容旧版本的Java,又要利用新版本的特性。以下是主要机制: - **多版本JAR结构**: JAR内部的`META-INF/versions`目录下可以...
Java开发工具包(JDK)是Java编程语言的核心组件,每个新版本都会引入一系列改进和新特性以提高性能、安全性和开发效率。JDK 9是这个系列中的一个重要里程碑,它发布于2017年,包含了许多引人注目的新特性。下面,...
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
例如,JDK6可能用于兼容旧项目,JDK7可能适用于需要利用其特定功能的项目,而JDK8由于其强大的新特性,成为了现代Java开发的首选。 总之,JDK6、JDK7和JDK8在Windows 64位环境下安装和使用,是Java开发者的必备工具...
JDK1.8已经发布很久了,在很多企业中都已经在使用。并且Spring5、SpringBoot2.0都推荐使用JDK1.8以上版本。所以我们必须与时俱进,拥抱变化。 Java8新特性如下: Lambda表达式 函数式接口 方法引用 接口的默认方法和...
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
**JDK7,全称Java Development Kit 7,是Java编程语言的一个重要版本,它引入了许多新特性,显著提升了开发效率和程序性能。这个doc中文文档详细解析了JDK7的关键改进,对于Java开发者来说是一份极具价值的参考资料...
博文链接:https://weibaojun.iteye.com/blog/70284
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
JDK6的新特性之六_插入式注解处理API JDK6的新特性之九_CommonAnnotations JDK6的新特性之十_Web服务元数据 JDK6的新特性之十一_更简单强大的JAX-WS JDK6的新特性之十三_JTable的排序和过滤 JDK6的新特性之...