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);  
 }  
}  
复制代码

 

 

posted @   draem0507  阅读(403)  评论(0编辑  收藏  举报
编辑推荐:
· 使用 .NET Core 实现一个自定义日志记录器
· [杂谈]如何选择:Session 还是 JWT?
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
· [杂谈]后台日志该怎么打印
阅读排行:
· 2000 Star,是时候为我的开源项目更新下功能了
· 好消息,在 Visual Studio 中可以免费使用 GitHub Copilot 了!
· 工作中这样用MQ,很香!
· 基于.NET WinForm开发的一款硬件及协议通讯工具
· 使用 .NET Core 实现一个自定义日志记录器
View Code
点击右上角即可分享
微信分享提示