⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imagebutton.java

📁 一个仿千千静听音乐播放器的Java源代码
💻 JAVA
字号:
package player.module;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import player.skin.SkinListener;
import player.skin.Skin;

public class ImageButton extends JButton implements MouseListener,SkinListener{
  private boolean entered = false;
  private boolean pressed = false;
  private ImageIcon icon = null;
  private String iconName = null;
  private float alpha = 0.7f;
  public ImageButton() {
    this(null);
  }

  public ImageButton(String iconName) {
    this(iconName, "");
  }

  public ImageButton(String iconName, String toolTip) {
    this.iconName = iconName;
    if(iconName != null)this.setIconImage(Skin.getImageIcon(iconName,this));
    this.addMouseListener(this);
    this.setContentAreaFilled(false);
    this.setToolTipText("<html><body><table height=18 border=0 cellpadding=2 cellspacing=1 bgcolor=#000000><tr><td bgcolor=#FFFFFF>" + toolTip + "</td></tr></table></body></html>");
  }

  public void setIconImage(ImageIcon icon){
    this.icon = icon;
    this.repaint();
  }

  public void setAlpha(float alpha) {
    this.alpha = alpha;
    this.repaint();
  }

  public float getAlpha() {
    return alpha;
  }


  public void paintBorder(Graphics g) {}

  public void paintComponent(Graphics g) {
    Graphics2D cs = (Graphics2D)g;
    if(icon != null){
      if(entered){
        if(pressed)cs.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha));
        else cs.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,1.0f));
      }
      else cs.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha));
      icon.paintIcon(this,cs,0,0);
    }
  }

  public void mouseClicked(MouseEvent e) {}

  public void mousePressed(MouseEvent e) {
    pressed = true;
    this.repaint();
  }

  public void mouseExited(MouseEvent e) {
    entered = false;
    this.repaint();
  }

  public void mouseEntered(MouseEvent e) {
    entered = true;
    this.repaint();
  }

  public void mouseReleased(MouseEvent e) {
    pressed = false;
    this.repaint();
  }

  public String getSkinName() {
    return iconName;
  }

  public void paintSkin(ImageIcon icon) {
    this.setIconImage(icon);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -