How to make a rectangle in Graphics in a transparent colour?

后端 未结 2 901
梦如初夏
梦如初夏 2021-02-18 15:40

I\'m trying to paint a rectangle on my application in a red shade but I need to make it sort of transparent so that the component under it will still show. However I still want

相关标签:
2条回答
  • 2021-02-18 16:32

    Try this: (but it will works for Graphics2D objeccts not for Graphics)

    protected void paintComponent(Graphics2D 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); 
        }
    }
    
    0 讨论(0)
  • 2021-02-18 16:36
    int alpha = 127; // 50% transparent
    Color myColour = new Color(255, value, value, alpha);
    

    See the Color constructors that take 4 arguments (of either int or float) for further details.

    0 讨论(0)
提交回复
热议问题