如何在图形中以透明颜色制作矩形?

我试图在我的应用程序上以红色阴影绘制一个矩形,但我需要使它变得透明,以便它下面的组件仍然会显示。 但是我仍然想要一些颜色仍然会显示。 我正在绘制的方法如下:

protected void paintComponent(Graphics g) { if (point != null) { int value = this.chooseColour(); // used to return how bright the red is needed if(value !=0){ Color myColour = new Color(255, value,value ); g.setColor(myColour); g.fillRect(point.x, point.y, this.width, this.height); } else{ Color myColour = new Color(value, 0,0 ); g.setColor(myColour); g.fillRect(point.x, point.y, this.width, this.height); } } } 

有谁知道我怎么能让红色阴影有点透明? 我不需要它完全透明。

 int alpha = 127; // 50% transparent Color myColour = new Color(255, value, value, alpha); 

有关更多详细信息,请参阅Color 4个参数( intfloat )的Color构造函数 。

尝试这个:

 protected void paintComponent(Graphics g) { if (point != null) { int value = this.chooseColour(); // used to return how bright the red is needed g.setComposite(AlphaComposite.SrcOver.derive(0.8f)); if(value !=0){ Color myColour = new Color(255, value,value ); g.setColor(myColour); g.fillRect(point.x, point.y, this.width, this.height); } else{ Color myColour = new Color(value, 0,0 ); g.setColor(myColour); g.fillRect(point.x, point.y, this.width, this.height); } g.setComposite(AlphaComposite.SrcOver); } }