简体   繁体   English

更改jButton透明度/ opacity / alpha

[英]Change jButton transparancy /opacity/alpha

I have custom class in Java that extends JButton and have an image background. 我在Java中有自定义类,该类扩展了JButton并具有图像背景。 I can set alpha with this function in the class: 我可以在课堂上使用此功能设置alpha:

@Override
public void paint(Graphics g) 
{       
    Graphics2D g2 = (Graphics2D) g.create();
    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) 0.5));
    super.paint(g2);
    g2.dispose();
}

How can set getter and setter to this function so I can control the opacity from the class that creates the button? 如何将getter和setter设置为此功能,以便我可以从创建按钮的类中控制不透明度? I need something like this: 我需要这样的东西:

MyJButton myJbtn = new MyJButton();
myJbtn.setOpacity(0.5);

Create an instance field opacity in your button class, then create setter and getters: 在您的按钮类中创建实例字段opacity ,然后创建setter和getter:

private float opacity;
//......
public setOpacity(float opacity) {
    this.opacity = opacity;
}

public void getOpacity(){
    return this.opacity
}

Then class repaint after setting any opacity to the button: 然后,在对按钮设置任何不透明度之后,类会重新绘制:

MyJButton myJbtn = new MyJButton();
myJbtn.setOpacity(0.5);
myJbtn.repaint();

The setOpacity method can be implemented like this: setOpacity方法可以这样实现:

public void setOpacity(float opacity) {
    this.opacity = opacity;
    repaint();
}

opacity is an instance field that stores the current opacity. opacity是存储当前不透明度的实例字段。 It is used by paint for the opacity value. paint将其用作不透明度值。

You may also want a getOpacity method, which is not strictly required. 您可能还需要getOpacity方法,这不是严格要求的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM