我在Java中有自定义类,该类扩展了JButton并具有图像背景。我可以在课堂上使用此功能设置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();
}


如何将getter和setter设置为此功能,以便我可以从创建按钮的类中控制不透明度?
我需要这样的东西:

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

最佳答案

在按钮类中创建一个实例字段opacity,然后创建setter和getter:

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

public void getOpacity(){
    return this.opacity
}


然后,在对按钮设置任何不透明度之后,类会重新绘制:

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

10-02 11:21