Swing 给JLabel加超链接

2024-02-21 05:08
文章标签 swing 超链接 jlabel

本文主要是介绍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();  
      }  
      }  
      });
  

 

注意上面的红色代码是调用的部分...一般放在构造函数里

这篇关于Swing 给JLabel加超链接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730658

相关文章

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

JavaSwing项目ATM自动提款机(mysql数据库)+详细报告

目  录 第一章 引言... 1 1.1 设计目的... 1 1.2 相关开发工具介绍... 1 第二章 数据库需求分析... 2 2.1 系统功能分析... 2 2.2 功能模块设计... 2 第三章 数据库概念结构设计... 3 3.1 概念模型... 3 3.2 E-R图... 3 第四章 数据库逻辑结构设计... 4 4.1 关系模型设计... 4 4.2 数据模型的优化... 4 第五

Swing之EDT简析

Java Swing 是一个单线程图形库,里面绝大多数的代码不是线程安全的(thread-safe),Swing组件大多数没有做同步线程安全处理,也就是说任何地方都能随便调用,在不同的线程里面随便使用这些API去更新界面元素和设置值,都可能会出现一些问题。 Swing框架使用了Event Queue和EDT(Event-Dispatch-Thread)来保证线程是安全的。在GUI界面上发出的请求

7、java swing 添加 jcheckbox复选框

总体上而言,Java Swing编程有两大特点:麻烦、效果差。        麻烦是说由于设计器的使用不方便(如果您希望使用窗体设计器通过快速拖拽控件建立您的Java Swing GUI程序,请您使用MyEclipse 8.5以上版本,并且需要最高使用权限),所有代码都得手写,如果没有好的编码规范和注释习惯。自己都会被代码淹没。效果差是指运行时的界面。具体的您可以自己尝试发现。 通过一段代码来

5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

5、Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这样,为了操作方便,也只是在大的模块下用布局管理器,在一些小的模块下还是用绝对布局。在一些没要求界面大小改变的窗口,一般采用绝对布局比较容易,但对于后期的修改来说比较麻烦。 5.1、

4、Swing在JPanel中添加背景图片方法

4、Jpanel面板中加载背景图片 在实际应用Java做界面的过程中,常常会涉及到加载背景图片以使页面美化。下面整理了一个小模块以便于调用。 1 package com.tntxia.commonswing.panel; 2 3 import java.awt.*; 4 import javax.swing.JPanel; 5 6 /** 7 * 有背

Java Swing中几种常见对话框(文件对话框、消息对话框、输入对话框、确认对话框、颜色对话框)

1、Dialog类主要方法        JDialog类和JFrame都是Windows的子类,二者的实例都是底层容器,但二者有相似之处也有不同的地方,主要区别是JDialog类创建的对话框必须要依靠于某个窗口。        创建对话框与创建窗口类似,通过建立JDialog的子类来建立一个对话框类,然后这个类的一个实例就是一个对话框。对话框是一个容器,它的默认布局是BorderLayout

Java+Swing实现学生选课管理系统

Java+Swing实现学生选课管理系统 一、系统介绍二、系统展示1.课程查询2.课程添加3.退课 三、系统实现四、其他1.其它系统2.获取源码 一、系统介绍 本系统实现了学生登录和管理员登录,学生实现选课,查看已选课程,修改密码,查看学生信息功能。管理员实现选课信息的增删改查,学生信息查询,学生密码修改功能。 二、系统展示 1.课程查询 2.课程添加 3.退课

HTML 中 a 超链接标签全解析:属性、锚点与伪类

目录 a超链接标签介绍 锚点介绍 页面内锚点  页面外锚点 伪类 a超链接标签介绍         在 HTML 中,<a>标签是一个文本级的标签,同时它还包含伪类,用于根据用户与链接的不同交互状态呈现不同的样式。与之同为文本级标签的<p>,由于其语义范围相对较大,所以可以包裹<a>标签,而<a>不能包裹<p>标签。例如:         正确示例: <p>  <a

【原创】java+swing+mysql学生考勤管理系统设计与实现

个人主页:程序员杨工 个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验 博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片,希望和大家一起共同努力,一起进步,顶峰相见。 开发背景: 随着信息技术的飞速发展,各行各业都在积极利用信息平台来提高管理效率。在教育领域,信息技术的引入不仅改变了传统的教学模式,也极大地提升了学校的