本文主要是介绍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加超链接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!