rombo puntos poligono ovalo hechos graficos ejemplo drawline dibujos dibujar coordenadas codigo java swing colors paintcomponent translucency

java - puntos - ¿Cómo hacer un rectángulo en gráficos en un color transparente?



graficos en java (2)

Estoy tratando de pintar un rectángulo en mi aplicación en un tono rojo, pero necesito hacer que sea un poco transparente para que el componente debajo se muestre. Sin embargo todavía quiero que se muestre algo de color. El método donde estoy dibujando es el siguiente:

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); } } }

¿Alguien sabe cómo puedo hacer que el tono rojo sea un poco transparente? Aunque no lo necesito completamente transparente.


Prueba esto:

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); } }


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

Vea los constructores de Color que toman 4 argumentos ( int o float ) para más detalles.