如何用JAVA编写一个透明按钮的程序.

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【liuliu1234567890】截止到2008-07-09 11:53:22的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   


    /*
      自定义透明按钮实现:   
        
      1   继承JButton类.   
      这个不用讲   
        
      2.   正常显示文本.   
      重写paintComponent(Graphics   g)方法,在方法里用g.drawString(String   text,   int   x,   int   y);把文字画出来   
        
      3.   按钮本身只有边框,   如果放在有图片背景的窗体上,   可以看到背后的图像.   
      可以不画按钮的背景色,这样按钮就是透明的。   
      还可以把背景图片将要出现按钮部分的小图形截取下来,然后画成按钮的背景。   
        
      4.   当鼠标进入按钮区域时,   获取背景色,   然后进行加深或者变浅处理,   使产生凸起效果.   
      截取按钮出现部分的小图形到BufferedImage中,处理后(明暗处理)在不同的时机用不同的效果画背景。
     */
    import javax.swing.JButton;
    import java.awt.geom.*;
    import java.awt.*;public class TransparentButton extends JButton {
    public  TransparentButton(String str)
    {
    super(str);
    text=str;
    }
    public void paintComponent(Graphics g)
    {
    g.drawString(text,this.getWidth()/2-20,this.getHeight()/2+10);
    }
    private String text;}
      

  3.   

    如何用JAVA编写一个背景透明的按钮程序?
      

  4.   

    public void setOpaque(boolean isOpaque)如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制其某些或所有像素,从而允许其下面的像素透视出来。 
    对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButton 和 JTree),此属性的默认值是和外观相关的。 
    参数:
    isOpaque - 如果此组件应该是透明的,则为 true
      

  5.   

    //super.paintComponent(g);
    Graphics2D g2 = (Graphics2D)g;
    int rule = AlphaComposite.SRC_OVER;
    float alpha = 0.5F;
    g2.setComposite(AlphaComposite.getInstance(rule, alpha));
    Paint paint = new GradientPaint(0,0,Color.BLUE,(float)getWidth(),(float)getHeight(),Color.GREEN);
    g2.setPaint(paint);
    //g2.setPaint(new Color(0.2F,0.8F,0.7F,0.5F));
    g2.fill(new Rectangle2D.Double(0,0,getWidth(),getHeight()));
    g2.setPaint(Color.BLACK);
    g.drawString(text,this.getWidth()/2-20,this.getHeight()/2+10);