2

我在 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);
4

2 回答 2

3

在按钮类中创建一个实例字段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();
于 2013-08-04T11:51:54.127 回答
3

setOpacity方法可以这样实现:

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

opacity是存储当前不透明度的实例字段。它用于paint不透明度值。

您可能还需要一种getOpacity并非严格要求的方法。

于 2013-08-04T11:52:11.610 回答