半透明描画
後ろが透けて見える効果を出す方法です。さあ何を透けさせようか。
半透明描画
赤い丸はべた塗りで青い四角形は透けています。以下、描画部分のコードです。
public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; // アルファ値 AlphaComposite composite = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, 0.5f); g2.setColor(Color.RED); g2.fillOval(50, 50, 100, 100); // アルファ値をセット(以後の描画は半透明になる) g2.setComposite(composite); g2.setColor(Color.BLUE); g2.fillRect(90, 90, 100, 100); }
AlphaCompositeの0.5が透明度です。0.0だと完全に透明、1.0だと不透明になります。0.5なので半分透けます。このAlphaCompositeオブジェクトをGraphics2Dオブジェクトにセットして描画すると以後半透明で描画されます。
お化け屋敷
もちろん画像も透けて描画できます。お化けはやっぱ透けてないと気分でませんねー。
※背景画像はぐったりにゃんこのホームページさんからお借りしました。
public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; // アルファ値 AlphaComposite composite = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, 0.2f); // 背景は普通に描画 g2.drawImage(bgImage, 0, 0, this); // アルファ値をセット(以後の描画は半透明になる) g2.setComposite(composite); // お化けはもちろん半透明 g2.drawImage(obakeImage, 100, 100, this); }