Tutorial Grafika Komputer Menggunakan JAVA 2D ( ANIMASI 5 )


Kali ini kami akan mencoba menjelaskan tentang bagaimana cara untuk membuat Animasi menggunakan Java Netbeen. Tak usah banyak basa basi lagi mari ikuti Langkah - langkah berikut :
1. Yang pertama perlu kita lakukan adalah kita buat file.java
2. Lalu kita isikan dengan scriptnya, sebagai berikut :


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package uas;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import javafx.geometry.Rectangle2D;
import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;

/**
 *
 * @author DEVILA
 */
public class UAS extends JApplet{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame frame = new JFrame();
        frame.setTitle("UAS Praktikum Grafkom 8");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JApplet applet = new UAS();
        applet.init();
        frame.getContentPane().add(applet);
        frame.pack();
        frame.setVisible(true);
    }
    public void init() {
        JPanel panel = new panel();
        getContentPane().add(panel);
    }
}
class panel extends JPanel implements Runnable{
    int x = 0;
    int y = 500;
    Thread t = new Thread(this); //funsinya untuk mengaktifkan animasi
    //thread = untuk menjalankan aplikasi
    //t = variabel
 
    public panel() {
        setPreferredSize(new Dimension(900, 480));
        setBackground(Color.white);
        t.start(); //fungsinya untuk menjalankan atau memulai animasi
        //t didapat dari inisialisasi dari thread
    }
   
    public void paintComponent(Graphics c) {
        super.paintComponent(c);
        Graphics2D c2 = (Graphics2D) c;
        GeneralPath gp1 = new GeneralPath();
        GeneralPath gp2 = new GeneralPath();
        GradientPaint g3 = new GradientPaint(210, 300, Color.darkGray, 240, 320, Color.black);
        GradientPaint g2 = new GradientPaint(220, 310, Color.darkGray, 270, 340, Color.black);

        //langit
        GradientPaint biruLangit = new GradientPaint(0, 300, Color.white, 0, 0, Color.cyan);
        java.awt.geom.Rectangle2D.Double langit = new java.awt.geom.Rectangle2D.Double(0, 0, 900, 500);
        c2.draw(langit);
        c2.setPaint(biruLangit);
        c2.fill(langit);

        //laut
        c2.setColor(Color.BLUE);
        java.awt.geom.Rectangle2D.Double laut=new java.awt.geom.Rectangle2D.Double(0, 350, 900, 150);
        c2.fill(laut);

        //matahari
        Shape e1 = new Ellipse2D.Double(550, 50, 100, 100);
        GradientPaint g1 = new GradientPaint(535, 80, Color.ORANGE, 550, 130, Color.YELLOW);
        c2.setPaint(g1);
        c2.fill(e1);

        //sinar matahari       
        c2.drawLine(500, 20, 580, 55);
        c2.drawLine(450, 60, 560, 80);
        c2.drawLine(430, 140, 570, 120);
        c2.drawLine(470, 200, 600, 140);
        c2.drawLine(550, 230, 600, 160);
        c2.drawLine(640, 10, 590, 90);
        c2.drawLine(730, 30, 600, 100);

        //awan1 : pojok kiri
        c2.setColor(Color.white);
        Shape e6 = new Ellipse2D.Double(x, 75, 60, 30);
        c2.fill(e6);
        Shape e7 = new Ellipse2D.Double(x+35, 65, 50, 50); // x,y,lengkungan
        c2.fill(e7);
        Shape e7a = new Ellipse2D.Double(x+15, 65, 50, 50);
        c2.fill(e7a);
        Shape e7b = new Ellipse2D.Double(x+55, 65, 50, 50);
        c2.fill(e7b);
        Shape e8 = new Ellipse2D.Double(x+60, 75, 60, 30);
        c2.fill(e8);

        //awan2 : atas matahari
        c2.setColor(Color.white);
        Shape e9 = new Ellipse2D.Double(y, 20, 60, 30);
        c2.fill(e9);
        Shape e10 = new Ellipse2D.Double(y+35, 10, 50, 50);
        c2.fill(e10);
        Shape e10a = new Ellipse2D.Double(y+15, 10, 50, 50);
        c2.fill(e10a);
        Shape e10b = new Ellipse2D.Double(y+55, 10, 50, 50);
        c2.fill(e10b);
        Shape e11 = new Ellipse2D.Double(y+60, 20, 60, 30);
        c2.fill(e11);

        //awan3 menutupi matahari : sebelah kiri bawah
        c2.setColor(Color.white);
        Shape e12 = new Ellipse2D.Double(520, 130, 60, 30);// x,y,lengkungan
        c2.fill(e12);
        Shape e13 = new Ellipse2D.Double(555, 120, 50, 50);
        c2.fill(e13);
        Shape e13a = new Ellipse2D.Double(535, 120, 50, 50);
        c2.fill(e13a);
        Shape e13b = new Ellipse2D.Double(575, 120, 50, 50);
        c2.fill(e13b);
        Shape e14 = new Ellipse2D.Double(580, 130, 60, 30);
        c2.fill(e14);

        //awan4 menutupi matahari : sebelah kanan atas
        c2.setColor(Color.white);
        Shape e15 = new Ellipse2D.Double(580, 100, 60, 30);// x,y,lengkungan
        c2.fill(e15);
        Shape e16 = new Ellipse2D.Double(605, 90, 50, 50);
        c2.fill(e16);
        Shape e16a = new Ellipse2D.Double(595, 90, 50, 50);
        c2.fill(e16a);
        Shape e16b = new Ellipse2D.Double(635, 90, 50, 50);
        c2.fill(e16b);
        Shape e17 = new Ellipse2D.Double(640, 100, 60, 30);
        c2.fill(e17);

        //atap kapal
        gp2.moveTo(y+210, 270);
        gp2.lineTo(y+240, 260);
        gp2.lineTo(y+335, 260);
        gp2.lineTo(y+340, 270);
        gp2.closePath();
        c2.draw(gp2);
        c2.setPaint(g3);
        c2.fill(gp2);
       
        //Badan Kapal
        gp1.moveTo(y+140, 310);
        gp1.lineTo(y+190, 360);
        gp1.lineTo(y+350, 360);
        gp1.lineTo(y+360, 330);
        gp1.lineTo(y+360, 330);
        gp1.lineTo(y+365, 310);
        gp1.closePath();
        c2.draw(gp1);
        c2.setPaint(g2);
        c2.fill(gp1);
       
        //bagian tengah kapal
        GradientPaint g4= new GradientPaint(170, 120, Color.BLACK, 10, 190, Color.BLACK,true);
        Shape r3= new java.awt.geom.Rectangle2D.Double(y+180, 290, 170, 25);
        c2.setPaint(g4);
        c2.fill(r3);
        c2.setColor(Color.gray);
        Shape r4=new java.awt.geom.Rectangle2D.Double(y+200, 270, 140, 20);
        c2.fill(r4);
        c2.setColor(Color.YELLOW); //jendela atas kabal
        Shape r5=new java.awt.geom.Rectangle2D.Double(y+295, 275, 30, 10);
        c2.fill(r5);
        Shape r6=new java.awt.geom.Rectangle2D.Double(y+240,275, 10, 6);
        c2.fill(r6);
        Shape r7=new java.awt.geom.Rectangle2D.Double(y+220, 275, 10, 6);
        c2.fill(r7);
        c2.setColor(Color.red);
        Shape r8=new java.awt.geom.Rectangle2D.Double(y+180, 309, 170, 4);
        c2.fill(r8);
       
        //jendela kapal
        c2.setColor(Color.white);
        Shape e2 = new Ellipse2D.Double(y+190, 320, 15, 15);
        Shape e3 = new Ellipse2D.Double(y+230, 320, 15, 15);
        Shape e4 = new Ellipse2D.Double(y+270, 320, 15, 15);
        Shape e5 = new Ellipse2D.Double(y+310, 320, 15, 15);
        c2.fill(e2);
        c2.fill(e3);
        c2.fill(e4);
        c2.fill(e5);
       
        //Tiang bendera
        c2.setColor(Color.BLACK);
        c2.drawLine(y+348, 290, y+348, 230);

        //Bendera
        c2.setColor(Color.red);
        Shape r1=new java.awt.geom.Rectangle2D.Double(y+350, 230, 45, 10);
        c2.fill(r1);
        c2.setColor(Color.WHITE);
        Shape r2=new java.awt.geom.Rectangle2D.Double(y+350, 240, 45, 10);
        c2.fill(r2);
       
        //tepian laut
        c2.setColor (new Color(0, 128, 0));
        c2.fillArc(655, 350, 500, 60, 270, -180);
        c2.fillArc(635, 370, 550, 94, 270, -180);
        c2.fillArc(605, 420, 590, 100, 270, -180);

        //gelombang laut
        c2.setColor(Color.white);
        c2.drawArc(0, 355, 20, 20, 180, 180);
        c2.drawArc(0, 375, 20, 20, 180, 180);
        c2.drawArc(0, 395, 20, 20, 180, 180);
        c2.drawArc(0, 415, 20, 20, 180, 180);
        c2.drawArc(0, 435, 20, 20, 180, 180);
        c2.drawArc(0, 455, 20, 20, 180, 180);
       
        c2.drawArc(20, 355, 20, 20, 180, 180);
        c2.drawArc(20, 375, 20, 20, 180, 180);
        c2.drawArc(20, 395, 20, 20, 180, 180);
        c2.drawArc(20, 415, 20, 20, 180, 180);
        c2.drawArc(20, 435, 20, 20, 180, 180);
        c2.drawArc(20, 455, 20, 20, 180, 180);
       
        c2.drawArc(40, 355, 20, 20, 180, 180);
        c2.drawArc(40, 375, 20, 20, 180, 180);
        c2.drawArc(40, 395, 20, 20, 180, 180);
        c2.drawArc(40, 415, 20, 20, 180, 180);
        c2.drawArc(40, 435, 20, 20, 180, 180);
        c2.drawArc(40, 455, 20, 20, 180, 180);
       
        c2.drawArc(60, 355, 20, 20, 180, 180);
        c2.drawArc(60, 375, 20, 20, 180, 180);
        c2.drawArc(60, 395, 20, 20, 180, 180);
        c2.drawArc(60, 415, 20, 20, 180, 180);
        c2.drawArc(60, 435, 20, 20, 180, 180);
        c2.drawArc(60, 455, 20, 20, 180, 180);
       
        c2.drawArc(80, 355, 20, 20, 180, 180);
        c2.drawArc(80, 375, 20, 20, 180, 180);
        c2.drawArc(80, 395, 20, 20, 180, 180);
        c2.drawArc(80, 415, 20, 20, 180, 180);
        c2.drawArc(80, 435, 20, 20, 180, 180);
        c2.drawArc(80, 455, 20, 20, 180, 180);
       
        c2.drawArc(100, 355, 20, 20, 180, 180);
        c2.drawArc(100, 375, 20, 20, 180, 180);
        c2.drawArc(100, 395, 20, 20, 180, 180);
        c2.drawArc(100, 415, 20, 20, 180, 180);
        c2.drawArc(100, 435, 20, 20, 180, 180);
        c2.drawArc(100, 455, 20, 20, 180, 180);
       
        c2.drawArc(120, 355, 20, 20, 180, 180);
        c2.drawArc(120, 375, 20, 20, 180, 180);
        c2.drawArc(120, 395, 20, 20, 180, 180);
        c2.drawArc(120, 415, 20, 20, 180, 180);
        c2.drawArc(120, 435, 20, 20, 180, 180);
        c2.drawArc(120, 455, 20, 20, 180, 180);
       
        c2.drawArc(140, 355, 20, 20, 180, 180);
        c2.drawArc(140, 375, 20, 20, 180, 180);
        c2.drawArc(140, 395, 20, 20, 180, 180);
        c2.drawArc(140, 415, 20, 20, 180, 180);
        c2.drawArc(140, 435, 20, 20, 180, 180);
        c2.drawArc(140, 455, 20, 20, 180, 180);
       
        c2.drawArc(160, 355, 20, 20, 180, 180);
        c2.drawArc(160, 375, 20, 20, 180, 180);
        c2.drawArc(160, 395, 20, 20, 180, 180);
        c2.drawArc(160, 415, 20, 20, 180, 180);
        c2.drawArc(160, 435, 20, 20, 180, 180);
        c2.drawArc(160, 455, 20, 20, 180, 180);
       
        c2.drawArc(180, 355, 20, 20, 180, 180);
        c2.drawArc(180, 375, 20, 20, 180, 180);
        c2.drawArc(180, 395, 20, 20, 180, 180);
        c2.drawArc(180, 415, 20, 20, 180, 180);
        c2.drawArc(180, 435, 20, 20, 180, 180);
        c2.drawArc(180, 455, 20, 20, 180, 180);
       
        c2.drawArc(200, 355, 20, 20, 180, 180);
        c2.drawArc(200, 375, 20, 20, 180, 180);
        c2.drawArc(200, 395, 20, 20, 180, 180);
        c2.drawArc(200, 415, 20, 20, 180, 180);
        c2.drawArc(200, 435, 20, 20, 180, 180);
        c2.drawArc(200, 455, 20, 20, 180, 180);
       
        c2.drawArc(220, 355, 20, 20, 180, 180);
        c2.drawArc(220, 375, 20, 20, 180, 180);
        c2.drawArc(220, 395, 20, 20, 180, 180);
        c2.drawArc(220, 415, 20, 20, 180, 180);
        c2.drawArc(220, 435, 20, 20, 180, 180);
        c2.drawArc(220, 455, 20, 20, 180, 180);
       
        c2.drawArc(240, 355, 20, 20, 180, 180);
        c2.drawArc(240, 375, 20, 20, 180, 180);
        c2.drawArc(240, 395, 20, 20, 180, 180);
        c2.drawArc(240, 415, 20, 20, 180, 180);
        c2.drawArc(240, 435, 20, 20, 180, 180);
        c2.drawArc(240, 455, 20, 20, 180, 180);
       
        c2.drawArc(260, 355, 20, 20, 180, 180);
        c2.drawArc(260, 375, 20, 20, 180, 180);
        c2.drawArc(260, 395, 20, 20, 180, 180);
        c2.drawArc(260, 415, 20, 20, 180, 180);
        c2.drawArc(260, 435, 20, 20, 180, 180);
        c2.drawArc(260, 455, 20, 20, 180, 180);
       
        c2.drawArc(280, 355, 20, 20, 180, 180);
        c2.drawArc(280, 375, 20, 20, 180, 180);
        c2.drawArc(280, 395, 20, 20, 180, 180);
        c2.drawArc(280, 415, 20, 20, 180, 180);
        c2.drawArc(280, 435, 20, 20, 180, 180);
        c2.drawArc(280, 455, 20, 20, 180, 180);
       
        c2.drawArc(300, 355, 20, 20, 180, 180);
        c2.drawArc(300, 375, 20, 20, 180, 180);
        c2.drawArc(300, 395, 20, 20, 180, 180);
        c2.drawArc(300, 415, 20, 20, 180, 180);
        c2.drawArc(300, 435, 20, 20, 180, 180);
        c2.drawArc(300, 455, 20, 20, 180, 180);
       
        c2.drawArc(320, 355, 20, 20, 180, 180);
        c2.drawArc(320, 375, 20, 20, 180, 180);
        c2.drawArc(320, 395, 20, 20, 180, 180);
        c2.drawArc(320, 415, 20, 20, 180, 180);
        c2.drawArc(320, 435, 20, 20, 180, 180);
        c2.drawArc(320, 455, 20, 20, 180, 180);
       
        c2.drawArc(340, 355, 20, 20, 180, 180);
        c2.drawArc(340, 375, 20, 20, 180, 180);
        c2.drawArc(340, 395, 20, 20, 180, 180);
        c2.drawArc(340, 415, 20, 20, 180, 180);
        c2.drawArc(340, 435, 20, 20, 180, 180);
        c2.drawArc(340, 455, 20, 20, 180, 180);
       
        c2.drawArc(360, 355, 20, 20, 180, 180);
        c2.drawArc(360, 375, 20, 20, 180, 180);
        c2.drawArc(360, 395, 20, 20, 180, 180);
        c2.drawArc(360, 415, 20, 20, 180, 180);
        c2.drawArc(360, 435, 20, 20, 180, 180);
        c2.drawArc(360, 455, 20, 20, 180, 180);
       
        c2.drawArc(380, 355, 20, 20, 180, 180);
        c2.drawArc(380, 375, 20, 20, 180, 180);
        c2.drawArc(380, 395, 20, 20, 180, 180);
        c2.drawArc(380, 415, 20, 20, 180, 180);
        c2.drawArc(380, 435, 20, 20, 180, 180);
        c2.drawArc(380, 455, 20, 20, 180, 180);
       
        c2.drawArc(400, 355, 20, 20, 180, 180);
        c2.drawArc(400, 375, 20, 20, 180, 180);
        c2.drawArc(400, 395, 20, 20, 180, 180);
        c2.drawArc(400, 415, 20, 20, 180, 180);
        c2.drawArc(400, 435, 20, 20, 180, 180);
        c2.drawArc(400, 455, 20, 20, 180, 180);
       
        c2.drawArc(420, 355, 20, 20, 180, 180);
        c2.drawArc(420, 375, 20, 20, 180, 180);
        c2.drawArc(420, 395, 20, 20, 180, 180);
        c2.drawArc(420, 415, 20, 20, 180, 180);
        c2.drawArc(420, 435, 20, 20, 180, 180);
        c2.drawArc(420, 455, 20, 20, 180, 180);
       
        c2.drawArc(440, 355, 20, 20, 180, 180);
        c2.drawArc(440, 375, 20, 20, 180, 180);
        c2.drawArc(440, 395, 20, 20, 180, 180);
        c2.drawArc(440, 415, 20, 20, 180, 180);
        c2.drawArc(440, 435, 20, 20, 180, 180);
        c2.drawArc(440, 455, 20, 20, 180, 180);
       
        c2.drawArc(460, 355, 20, 20, 180, 180);
        c2.drawArc(460, 375, 20, 20, 180, 180);
        c2.drawArc(460, 395, 20, 20, 180, 180);
        c2.drawArc(460, 415, 20, 20, 180, 180);
        c2.drawArc(460, 435, 20, 20, 180, 180);
        c2.drawArc(460, 455, 20, 20, 180, 180);
       
        c2.drawArc(480, 355, 20, 20, 180, 180);
        c2.drawArc(480, 375, 20, 20, 180, 180);
        c2.drawArc(480, 395, 20, 20, 180, 180);
        c2.drawArc(480, 415, 20, 20, 180, 180);
        c2.drawArc(480, 435, 20, 20, 180, 180);
        c2.drawArc(480, 455, 20, 20, 180, 180);
       
        c2.drawArc(500, 355, 20, 20, 180, 180);
        c2.drawArc(500, 375, 20, 20, 180, 180);
        c2.drawArc(500, 395, 20, 20, 180, 180);
        c2.drawArc(500, 415, 20, 20, 180, 180);
        c2.drawArc(500, 435, 20, 20, 180, 180);
        c2.drawArc(500, 455, 20, 20, 180, 180);
       
        c2.drawArc(520, 355, 20, 20, 180, 180);
        c2.drawArc(520, 375, 20, 20, 180, 180);
        c2.drawArc(520, 395, 20, 20, 180, 180);
        c2.drawArc(520, 415, 20, 20, 180, 180);
        c2.drawArc(520, 435, 20, 20, 180, 180);
        c2.drawArc(520, 455, 20, 20, 180, 180);
       
        c2.drawArc(540, 355, 20, 20, 180, 180);
        c2.drawArc(540, 375, 20, 20, 180, 180);
        c2.drawArc(540, 395, 20, 20, 180, 180);
        c2.drawArc(540, 415, 20, 20, 180, 180);
        c2.drawArc(540, 435, 20, 20, 180, 180);
        c2.drawArc(540, 455, 20, 20, 180, 180);
       
        c2.drawArc(560, 355, 20, 20, 180, 180);
        c2.drawArc(560, 375, 20, 20, 180, 180);
        c2.drawArc(560, 395, 20, 20, 180, 180);
        c2.drawArc(560, 415, 20, 20, 180, 180);
        c2.drawArc(560, 435, 20, 20, 180, 180);
        c2.drawArc(560, 455, 20, 20, 180, 180);
               
        c2.drawArc(580, 355, 20, 20, 180, 180);
        c2.drawArc(580, 375, 20, 20, 180, 180);
        c2.drawArc(580, 395, 20, 20, 180, 180);
        c2.drawArc(580, 415, 20, 20, 180, 180);
        c2.drawArc(580, 435, 20, 20, 180, 180);
        c2.drawArc(580, 455, 20, 20, 180, 180);
               
        c2.drawArc(600, 355, 20, 20, 180, 180);
        c2.drawArc(600, 375, 20, 20, 180, 180);
        c2.drawArc(600, 395, 20, 20, 180, 180);
        c2.drawArc(600, 415, 20, 20, 180, 180);
        c2.drawArc(600, 435, 20, 20, 180, 180);
               
        c2.drawArc(620, 355, 20, 20, 180, 180);
        c2.drawArc(620, 375, 20, 20, 180, 180);
        c2.drawArc(620, 395, 20, 20, 180, 180);
        c2.drawArc(620, 415, 20, 20, 180, 180);
       
        c2.drawArc(640, 355, 20, 20, 180, 180);
        c2.drawArc(640, 375, 20, 20, 180, 180);
       
        //pohon & batu
        c2.setColor(Color.black);
        c2.fillOval(832, 360, 25, 15);
       
        c2.setColor(new Color(74, 37, 0));
        c2.fillRect(840, 300, 10, 80);
       
        c2.setColor(new Color(0, 255, 0));
        c2.setStroke(new BasicStroke(3.0f));
        c2.fillOval(810, 275, 60, 50);
        c2.fillOval(800, 305, 60, 30);
        c2.fillOval(830, 295, 60, 30);
       
        c2.setColor(Color.black);
        c2.fillOval(820, 370, 25, 15);
        c2.fillOval(842, 370, 25, 15);
       
        //rumput
        c2.setColor(Color.green);
        c2.drawArc(840, 405, 35, 20, 180, -180);
        c2.drawArc(820, 415, 35, 20, 180, -180);
        c2.drawArc(810, 405, 35, 20, 180, -180);
        c2.drawArc(790, 415, 35, 20, 180, -180);
       
        //text
        c2.setColor(Color.black);
        Font font = new Font("Chiller", Font.BOLD, 15);
        c2.setFont(font);
        c2.drawString("CREATED BY:", 770, 450);
        Font font1 = new Font("Chiller", Font.BOLD, 20);
        c2.setFont(font1);
        c2.drawString("DEVILA APRILIA", 750, 470);
   
    }
    public void run() {
        while (true) {
            if (x <= 700) { //angka disini maksudnya jauh dekatnya kapal berjalan
                y --; //kalau ini diganti ++ arah dia akan melawan arah
                x++; //jika keadaan benar dia akan mengulang
                //x disini berarti miliknya awan1 yang pojok kiri
                //y disini berarti miliknya kapal
            }else {
                x=0;
                y=500; //ini akan mengulang darimana awalnya dia start, maksudnya mengulang
                //lagi tergantung nilai y yang diberikan
            }
            try {
                repaint(); //untuk mewarnai lagi
                Thread.sleep(20); //fungsinya untuk tidur selama 25 m/s (kecepatan)
            } catch (Exception e) {
            }
        }
    }
}


3. Run project F6




Semoga tutorial yang kami bagi ini dapat membantu sobat sekalian.
SELAMAT BELAJAR
 

0 Response to "Tutorial Grafika Komputer Menggunakan JAVA 2D ( ANIMASI 5 ) "

Post a Comment