Pengenalan Java 2D

Java merupakan bahasa pemrograman tingkat tinggi yang menyediakan fasilitas untuk pemrograman visual, yaitu Swing dan AWT. Seiring dengan berkembangnya kemampuan grafis, java memperkenalkan sebuah API untuk pemrograman objek dua dimensi yaitu Java 2D. Java 2D memungkinkan kita untuk mengembangkan animasi grafis berbasis 2D.

Berikut ini adalah demonstrasi fitur-fitur dalam Java 2D seperti transparansi, pewarnaan gradient, transformasi dan pemilihan jenis huruf :


/**
 *
 * @author Wim Sonevel
 */
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.geom.Ellipse2D;
import javax.swing.*;
public class Demo2D extends JApplet{
    public static void main(String[]args){
        JFrame frame = new JFrame();
        frame.setTitle("Java 2D Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JApplet applet = new Demo2D();
        applet.init();
        frame.getContentPane().add(applet);
        frame.pack();
        frame.setVisible(true);
    }
    @Override
    public void init(){
        JPanel panel = new Panel2D();
        getContentPane().add(panel);
    }
}

class Panel2D extends JPanel{
    public Panel2D(){
        setPreferredSize(new Dimension(500, 400));
        setBackground(Color.PINK);
    }
    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;

        //draw an ellipse
        Shape ellipse = new Ellipse2D.Double(150, 100, 200, 200);
        GradientPaint paint = new GradientPaint(100, 100, Color.white, 200, 200, Color.gray);
        g2.setPaint(paint);
        g2.fill(ellipse);

        //set transparency
        AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f);
        g2.setComposite(ac);
        g2.setColor(Color.blue);

        //draw transparent text
        Font font = new Font("serif", Font.BOLD, 80);
        g2.setFont(font);
        g2.drawString("Java", 120, 200);

        //get outline of text glyph
        FontRenderContext frc = g2.getFontRenderContext();
        GlyphVector gv = font.createGlyphVector(frc, "2D");
        Shape glyph = gv.getOutline(150, 300);

        //draw rotated glyph
        g2.rotate(Math.PI/6, 200, 200);
        g2.fill(glyph);
    }
}



Hasil output :


Post a Comment

Previous Post Next Post