アプリケーションで長方形を赤い色でペイントしようとしていますが、その下のコンポーネントが引き続き表示されるように、長方形を透明にする必要があります。しかし、私はまだいくつかの色が表示されることを望んでいます。私が描いている方法は次のとおりです:
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);
詳細については、4つの引数(Color
またはint
)を取る float
コンストラクタ を参照してください。
これを試して:
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);
}
}