Подтвердить что ты не робот

Как сделать прямоугольник в Графика прозрачным цветом?

Я пытаюсь рисовать прямоугольник в своем приложении в красном цвете, но мне нужно сделать его прозрачным, чтобы компонент под ним все равно отображался. Однако я все еще хочу, чтобы какой-то цвет все еще показывался. Метод, который я рисую, следующий:

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

Кто-нибудь знает, как я могу сделать красный оттенок немного прозрачным? Я не нуждаюсь в этом полностью прозрачным, хотя.

4b9b3361

Ответ 2

Попробуйте следующее:

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

    }
}