快速业务通道

利用Java三步实现Cool Button - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

利用Java三步实现Cool Button

时间:2010-07-19

是不是总觉得java作出的按钮很难看,尤其是工具栏按钮,要是能作出像Word那样的Cool Button该多好,其实用java来实现,一点都不难,只要3步就可以了。这么简单?对!就是这么简单。

第一步:准备一个Border,jdk不是自带了很多Border类吗,为什么还要自己写?因为jdk里的border类太粗,达不到我们的效果,只能自己写一个了,不过不用怕,我已经帮你写好了,拿着用就可以了。

第二步:写一个MouseListener,处理button的各种动作(移入、移出、按下、按下移入、按下移出),怎么这么多动作,仔细观察一下Word的工具栏就知道了。

第三步:生成一个JButton对象,设置border、listener和其它一些属性。

下面来看看具体怎么实现。

第一步:编写一个Border类,我们这里称为ThinBevelBorder,让它继承BevelBorder,然后覆盖paintRaisedBevel和paintLoweredBevel方法,让它只化4条边框线,这样看起来就不会那么粗了。具体代码如下:

  package com.bhr.ioat.coolbutton; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.border.BevelBorder; public class ThinBevelBorder extends BevelBorder {  public ThinBevelBorder(int bevelType)  {   super(bevelType);  }  public ThinBevelBorder(int bevelType, Color highlight, Color shadow)  {   super(bevelType, highlight, shadow);  }  public ThinBevelBorder(int bevelType, Color highlightOuterColor, Color highlightInnerColor, Color shadowOuterColor, Color shadowInnerColor)  {   super(bevelType, highlightOuterColor, highlightInnerColor, shadowOuterColor, shadowInnerColor);  }   protected void paintRaisedBevel(Component c, Graphics g, int x, int y, int width, int height)  {   try   {    Color oldColor = g.getColor();    int h = height;    int w = width;    g.translate(x, y);    g.setColor(getHighlightInnerColor(c));    g.drawLine(0, 0, 0, h - 1);    g.drawLine(1, 0, w - 1, 0);    g.setColor(getShadowInnerColor(c));    g.drawLine(1, h - 1, w - 1, h - 1);    g.drawLine(w - 1, 1, w - 1, h - 2);    g.translate( -x, -y);    g.setColor(oldColor);   }   catch (NullPointerException e) { }  }  protected void paintLoweredBevel(Component c, Graphics g, int x, int y, int width, int height)  {   try   {    Color oldColor = g.getColor();    int h = height;    int w = width;    g.translate(x, y);    g.setColor(getShadowInnerColor(c));    g.drawLine(0, 0, 0, h - 1);    g.drawLine(1, 0, w - 1, 0);    g.setColor(getHighlightOuterColor(c));    g.drawLine(1, h - 1, w - 1, h - 1);    g.drawLine(w - 1, 1, w - 1, h - 2);    g.translate( -x, -y);    g.setColor(oldColor);   }   catch (NullPointerException e) { }  } }

利用Java三步实现Cool Button(2)

时间:2010-07-19

第二步:编写MouseListener,我们称为CoolButtonMouseListener,继承MouseAdapter,覆盖其中的4个方法(mouseEntered、mouseExited、mousePressed和mouseReleased),这里需要注意一下,后3个方法只是简单的根据条件修改一下button的border,第一个方法比较特别,当鼠标移入时除了判断是否需要修改border外,还要判断鼠标所处的状态,如果

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号