zoukankan      html  css  js  c++  java
  • 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);  
     }  
    }  
  • 相关阅读:
    Python 线程池,进程池,协程,和其他
    python 类的特殊成员方法
    Python 进程,线程,协程
    Python Socket第二篇(socketserver)
    Python 面向对象
    Python Socket
    saltstack 基础
    Python 面向对象学习
    Python 常用模块
    日志滚动工具
  • 原文地址:https://www.cnblogs.com/draem0507/p/3023458.html
Copyright © 2011-2022 走看看