2

paintComponent()メソッドを使用して JPanel にいくつかの図形を描画しています。最後の仕上げは、上部に向かって透明な白いグラデーションを追加することです.

私はこれを持っています:

1

そして、私はこのようなものを取得したい:

2

GradientPaint メソッドを使用しようとしましたが、まったく適切に機能していないようです。を呼び出すとg.setPaint(new GradientPaint(...))、既存のピクセルをまったく描画できないようです。

私が何をしているか見たい人は、この Pastebinでコードの SSCCE を入手できます。

4

2 に答える 2

3

これらを の最後に追加すると効果がありそうですpaintComponent(Graphics)

// now we have set a paint, DO SOMETHING WITH IT!
g.fillRect(0, 0, getWidth(), getHeight());

結果

ここに画像の説明を入力

于 2012-08-27T09:25:12.580 に答える
2

AlphaCompositeグラデーションをペイントする前に適用してみてください

g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));

あなたが試すことができる他のことは、グラデーション内でアルファ値を持つ色を使用することです...

LinearGradientPaint lgp = new LinearGradientPaint(
    startPoint, endPoint, new float[]{...}, 
    new Color[] {
        new Color(255, 255, 255, 0),
        new Color(255, 255, 255, 128),
        new Color(255, 255, 255, 0),
    });
于 2012-08-27T09:14:47.223 に答える