半透明描画
transparent.jar
赤い丸はべた塗りで青い四角形は透けています。以下、描画部分のコードです。
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);