Pengenalan Java 2D

Tuesday, March 18, 2014
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 :


Share this :

Previous
Next Post »
0 Komentar

Penulisan markup di komentar
  • Silakan tinggalkan komentar sesuai topik. Komentar yang menyertakan link aktif, iklan, atau sejenisnya akan dihapus.
  • Untuk menyisipkan kode gunakan <i rel="code"> kode yang akan disisipkan </i>
  • Untuk menyisipkan kode panjang gunakan <i rel="pre"> kode yang akan disisipkan </i>
  • Untuk menyisipkan quote gunakan <i rel="quote"> catatan anda </i>
  • Untuk menyisipkan gambar gunakan <i rel="image"> URL gambar </i>
  • Untuk menyisipkan video gunakan [iframe] URL embed video [/iframe]
  • Kemudian parse kode tersebut pada kotak di bawah ini
  • © 2015 Simple SEO ✔