AlphaCompositeSRCOUT.java Source code

Java tutorial

Introduction

Here is the source code for AlphaCompositeSRCOUT.java

Source

import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class AlphaCompositeSRCOUT extends JFrame {
    public AlphaCompositeSRCOUT() {
        getContentPane().add(new DrawingCanvas());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 500);
        setVisible(true);
    }

    public static void main(String arg[]) {
        new AlphaCompositeSRCOUT();
    }
}

class DrawingCanvas extends JPanel {
    float alphaValue = 1.0f;
    int compositeRule = AlphaComposite.SRC_OUT;
    AlphaComposite ac;

    DrawingCanvas() {
        setSize(300, 300);
        setBackground(Color.white);
    }

    public void paint(Graphics g) {
        Graphics2D g2D = (Graphics2D) g;

        int w = getSize().width;
        int h = getSize().height;

        BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
        Graphics2D big = bi.createGraphics();

        ac = AlphaComposite.getInstance(compositeRule, alphaValue);

        big.setColor(Color.red);
        big.drawString("Destination", w / 4, h / 4);
        big.fill(new Ellipse2D.Double(0, h / 3, 2 * w / 3, h / 3));

        big.setColor(Color.blue);
        big.drawString("Source", 3 * w / 4, h / 4);

        big.setComposite(ac);
        big.fill(new Ellipse2D.Double(w / 3, h / 3, 2 * w / 3, h / 3));

        g2D.drawImage(bi, null, 0, 0);
    }
}