Java桌面程序制作linkButton(标签连接)转载
效果图:
import java.awt.Cursor; import java.awt.FlowLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JLabel; /** * 超链接按钮。 * * @author Elvis */ public class LinkButton extends JLabel { private static final long serialVersionUID = 1L; private String text; private Cursor handCursor = new Cursor(Cursor.HAND_CURSOR); //建立一个光标为手指类型的鼠标 public LinkButton() { addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { Runtime rt = Runtime.getRuntime(); try { String cmd = "rundll32 url.dll,FileProtocolHandler http://ice.kane.blog.163.com"; rt.exec(cmd); } catch (IOException e1) { e1.printStackTrace(); } setClickedText(); } //鼠标移入标签时,设置文本样式事件 public void mouseEntered(MouseEvent e) { setHandCursor(); setMoveInText(); } //鼠标移出标签时,设置文本样式事件 public void mouseExited(MouseEvent e) { setDefaultCursor(); setMoveOutText(); } }); } //设置初始样式 public void setText(String text) { String content = "<html><font color=blue>" + text + "</font></html>"; this.text = text; super.setText(content); } //设置鼠标单击样式 private void setClickedText() { String content = "<html><font color=green><u>" + text + "</u></font></html>"; super.setText(content); } //设置鼠标移入样式 private void setMoveInText(){ String content="<html><font color=red><u>"+text+"</u></font></html>"; super.setText(content); } //设置鼠标移出样式 private void setMoveOutText(){ String content="<html><font color=blue>"+text+"</font></html>"; super.setText(content); } //设置光标为手指 private void setHandCursor() { this.setCursor(handCursor); } //设置光标为默认 private void setDefaultCursor() { this.setCursor(null); } public static void main(String[] args) { JFrame f = new JFrame(); f.setSize(400, 400); f.setLayout(new FlowLayout()); LinkButton btn = new LinkButton(); btn.setText("注册帐号"); f.add(btn); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
· 使用 .NET Core 实现一个自定义日志记录器
· [杂谈]如何选择:Session 还是 JWT?
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
· [杂谈]后台日志该怎么打印
· 2000 Star,是时候为我的开源项目更新下功能了
· 好消息,在 Visual Studio 中可以免费使用 GitHub Copilot 了!
· 工作中这样用MQ,很香!
· 基于.NET WinForm开发的一款硬件及协议通讯工具
· 使用 .NET Core 实现一个自定义日志记录器