我在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);
答案 0 :(得分: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();
答案 1 :(得分:3)
setOpacity
方法可以像这样实现:
public void setOpacity(float opacity) {
this.opacity = opacity;
repaint();
}
opacity
是一个存储当前不透明度的实例字段。它由paint
用于不透明度值。
您可能还需要getOpacity
方法,这并非严格要求。