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

后端 未结 2 902
梦如初夏
梦如初夏 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); 
        }
    }
    

提交回复
热议问题