1.要解决的问题
基于Java Swing的超链接实现

2.自定义一个超链接标签控件[LinkLabel]
2.1.完整代码如下:

public class LinkLabel extends JLabel {
private String text, url;
private boolean isSupported;
public LinkLabel(String text, String url) {
this.text = text;
this.url = url;
try {
this.isSupported = Desktop.isDesktopSupported()
&& Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);
} catch (Exception e) {
this.isSupported = false;
}
setText(false);
addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
setText(isSupported);
if (isSupported)
setCursor(new Cursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e) {
setText(false);
}
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(
new java.net.URI(LinkLabel.this.url));
} catch (Exception ex) {
}
}
});
}
private void setText(boolean b) {
if (!b)
setText("<html><font color=blue><u>" + text);
else
setText("<html><font color=red><u>" + text);
}
public static void main(String[] args) {
JFrame jf = new JFrame("一个超链接实现的例子");
JPanel jp = new JPanel();
jp.add(new LinkLabel("访问eRedLab", "http://hi.baidu.com/eRedLab"));
jf.setContentPane(jp);
jf.pack();
jf.setVisible(true);
}
}

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 Swing的超链接标签相关推荐

  1. java swing 链接_JAVA中Jtable标签设置超级链接:基于Java Swing的超链接标签和超链接按钮的实现...

    希望在一个标签上设置超级链接,找到了如下的一种方法: 1.要解决的问题 基于Java Swing的超链接实现 2.自定义一个超链接标签控件[LinkLabel] 2.1.完整代码如下: public ...

  2. 基于Java Swing界面编程教学

    基于Java Swing界面编程 Swing是Java基础类的一部分,是一个为Java设计的GUI工具包. Swing包含了诸多图形用户界面(GUI)器件,提供了许多比awt更好的屏幕显示元素. 本教 ...

  3. 【java毕业设计】基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码)——推箱子游戏

    基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的推箱子游戏设计与实现,文章末尾附有本毕业设计的论文 ...

  4. 【java毕业设计】基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码)——俄罗斯方块游戏

    基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现,文章末尾 ...

  5. 基于Java+Swing实现餐厅点餐系统

    基于Java+Swing实现餐厅点餐系统 一.系统介绍 二.系统展示 1.主页 2.点菜 3.下单 4.结算 5.销售情况(管理员) 三.系统实现 四.其他系统 五.获取源码 一.系统介绍 该系统针对 ...

  6. 【java毕业设计】基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码)——连连看游戏

    基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的连连看游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  7. Java实现注册登录系统——基于Java Swing实现

    技术简介:Java Swing 介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. ...

  8. java swing登录系统_Java实现注册登录系统——基于Java Swing实现

    技术简介:Java Swing 介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. ...

  9. 【java毕业设计】基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码)——雷电游戏

    基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的雷电游戏GUI设计与实现,文章末尾附有本毕业设计的论文和源码下 ...

最新文章

  1. android序列化异常,关于序列化:错误:Android中的序列化和反序列化
  2. sed原理的一些感悟
  3. c语言类型名占字节,C语言实现 数据类型占多少字节指针占多少字节
  4. Java Code Geeks Andygene Web原型
  5. 《零基础》MySQL 选择数据库(七)
  6. C++/C--浮点型数据的二进制表示及其内存存储形式
  7. Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies
  8. 浪漫星空python
  9. WIN32汇编 状态栏的使用
  10. 如何选择VC界面库产品?(二)– DSkinLite界面库介绍
  11. 【echart】常用术语
  12. 编译选项默认关闭adb RSA指纹认证
  13. WPS新建文字分享微信.docx形式_这 3 个实用的文档「分享」技巧,很多人都不会用...
  14. 微信小程序流量主开通 (如何赚钱)
  15. 想要改变客户态度 这些销售话术需掌握
  16. 2022高压电工考试练习题及模拟考试
  17. HTML5开发系列(4) 之 样式表的三种类型
  18. 嵩明:“整村授信”助力乡村振兴
  19. 有人离职时经理的反应是?
  20. wikijs使用docker安装

热门文章

  1. 电脑总弹出计算机界面,每次电脑打开总是弹出很多广告窗口,怎么解决?
  2. Python 告诉你:熊市将去,牛市要来!
  3. Pose Animator:使用实时TensorFlow.js模型的SVG动画工具
  4. js将url转换成二维码图片并下载到本地功能
  5. mysql where 条件取反_数据库MySQL之where条件查询
  6. 什么是 DNS 记录?
  7. Django中 JWT -- obtain_jwt_token的原理
  8. excel 常用图表制作
  9. Vue3+Typescript学习笔记(十)组件通信--父子组件通信(props,$emit),非父子组件通信(provide和inject,mitt库)
  10. 2022年安全员-B证考试题库及答案