分享

Swing自定义水晶按钮

 Cloud书屋 2012-11-21

自定义仿Win7的水晶按钮

效果图

完整工程下载http://download.csdn.net/detail/jasper_success/4488514

关键代码

  1. public void paintComponent(Graphics g) {  
  2.         Graphics2D g2 = (Graphics2D) g;  
  3.         AlphaComposite composite = AlphaComposite.getInstance(  
  4.                 AlphaComposite.SRC_OVER, alpha);  
  5.         g2.setComposite(composite);  
  6.   
  7.         // 绘制边框  
  8.         if (this.isMouseEntered) {  
  9.             Util.drawButtonBackground(g2, thisnew Color(253236219),  
  10.                     new Color(253223187), new Color(255206105),  
  11.                     new Color(255255222));  
  12.         }  
  13.         // 按钮被按下的效果  
  14.         if (clicked) {  
  15.             Util.drawButtonBackground(g2, thisnew Color(25519999),  
  16.                     new Color(253236219), new Color(253236219),  
  17.                     new Color(25519999));  
  18.         }  
  19.         composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f);  
  20.         g2.setComposite(composite);  
  21.         if (frameType == FRAME_AROUND) {  
  22.             g.setColor(Config.COLOR_TOOLBAR_FRAME);  
  23.             g.drawRoundRect(11, getWidth() - 4, getHeight() - 233);  
  24.         } else if (frameType == FRAME_RIGHT) {  
  25.             g.setColor(Config.COLOR_TOOLBAR_FRAME);  
  26.             g.drawLine(getWidth() - 11, getWidth() - 1, getHeight() - 2);  
  27.         }  
  28.   
  29.         // 消除锯齿  
  30.         Util.setFractionalmetricsOn(g2);  
  31.         // 文字风格  
  32.         g.setColor(Config.COLOR_UI_TEXT);  
  33.         g.setFont(Config.FONT_UI_TEXT);  
  34.   
  35.         // 绘制图标  
  36.         if (getImage() != null) {  
  37.             g.drawImage(getImage(),  
  38.                     (getWidth() - getImage().getWidth(this)) / 25 + mbStatus,  
  39.                     this);  
  40.             g.drawString(getName(), (getWidth() - getName().length()  
  41.                     * Config.FONT_UI_TEXT.getSize()) / 2,  
  42.                     getImage().getHeight(this) + mbStatus);  
  43.         } else {  
  44.             g.drawString(getName(), (getWidth() - getName().length()  
  45.                     * Config.FONT_UI_TEXT.getSize()) / 210 + mbStatus);  
  46.         }  
  47.     }  


下载http://download.csdn.net/detail/jasper_success/4488514

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多