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 :
Hasil output :
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 :
Tags:
Java