Sabtu, 18 Desember 2010

Membuat Animasi Jam Digital Menggunakan Java Applet

Java merupakan bahasa pemograman yang selalu menarik untuk dipelajari. Selain dapat dijalankan diberbagai macam platform. Bahasa pemograman java juga dapat menciptakan sebuah animasi jam digital seperti yang akan kita pelajari berikut ini.
Disini saya memberikan sintak program untuk membuat animasi jam yang terlebih dahulu kita ketikan koding-koding berikut ini dan disimpan dengan nama "
DigitalClock01.java " Kemudian compile program tersebut menggunakan jcreator ataupun netbeans hingga menampilkan class java "DigitalClock01.class".
 
import java.awt.*;
import java.applet.*;
import java.util.*;

public class DigitalClock01 extends Applet implements Runnable
{
    Thread runner;
    Image Buffer;
    Image Digits[];
    Graphics gBuffer;
    int oldSec=0, ticker=0;
    boolean dotFlash=true, flash=true;
           
public Image loadImage(String img)
    {
        Image image=getImage(getDocumentBase(),img);
        MediaTracker tracker=new MediaTracker (this);
        tracker.addImage(image,0);
        try{tracker.waitForID(0);}
        catch(InterruptedException e){}
        return image;
    }   


   
public void init()
{
    Digits=new Image[12];

//Menampung gambar untuk digit jam
//for(int i=0;i<10;i++)
//Digits[i]=loadImage("digit"+i+".gif");

Digits[0]=loadImage("0.gif");
Digits[1]=loadImage("1.gif");
Digits[2]=loadImage("2.gif");
Digits[3]=loadImage("3.gif");
Digits[4]=loadImage("4.gif");
Digits[5]=loadImage("5.gif");
Digits[6]=loadImage("6.gif");
Digits[7]=loadImage("7.gif");
Digits[8]=loadImage("8.gif");
Digits[9]=loadImage("9.gif");

Digits[10]=loadImage("dot_a.gif");
Digits[11]=loadImage("dot_b.gif");

//Membuat daerah untuk melakukan penggambaran
Buffer=createImage(size().width,size().height);
gBuffer=Buffer.getGraphics();
}

public void start()
{
        if(runner==null)
        {
            runner=new Thread (this);
            runner.start();
        }
    }
   
public void stop()
    {
        if(runner!=null)
        {
            runner.stop();
            runner=null;
        }
    }

public void run()
    {
    while(true)
    {

//Waktu tunda sebesar 50 miliseconds
    try{
    runner.sleep(50);
    }
    catch(Exception e){}
    repaint();
    }
    }
   
public void update (Graphics g)
{
    paint(g);
}

public void drawDigit(int digit,int x)
{
    gBuffer.drawImage(Digits[digit],x,5,this);
}

public void paint(Graphics g)
{
//membuat objek date
    Date today=new Date();
   
//mendapatkan detik, menit, jam, hari, tanggal, bulan, dan tahun   
int sec=today.getSeconds();
int min=today.getMinutes();
int hour=today.getHours();

if(sec!=oldSec)
{
    dotFlash=true;
    oldSec=sec;
    flash=true;
}

if(flash)
{
    ticker++;
   
if(flash)
{
    ticker=0;
    flash=false;
}
}
    else
    dotFlash=false;
   
    String secStr,minStr,hourStr;
   
//Membuat waktu jika jam, menit, detik, kurang dari 10 maka ditambahkan "0" didepan angka tesebut
if(hour<10)
    hourStr="0"+hour;
else
    hourStr=""+hour;
   
if(min<10)
    minStr="0"+min;
else
    minStr=""+min;
if(hour<10)
    secStr="0"+sec;
else
    secStr=""+sec;
           
//membuat latar belakang berwarna
gBuffer.setColor(new Color(0,0,0));
gBuffer.fillRect(0,0,size().width,size().height);

//Menggambar bingkai
gBuffer.setColor(new Color(105,0,0));
gBuffer.drawRect(0,0,size().width-1,size().height-1);
           
//Menggambar digit dari metode drawDigit
drawDigit(Integer.parseInt(hourStr.substring(0,1)),5);
drawDigit(Integer.parseInt(hourStr.substring(1,2)),30);

drawDigit(Integer.parseInt(minStr.substring(0,1)),75);
drawDigit(Integer.parseInt(minStr.substring(1,2)),105);

drawDigit(Integer.parseInt(secStr.substring(0,1)),160);
drawDigit(Integer.parseInt(secStr.substring(1,2)),190);

//Untuk tanda titik dua yang berkedip
if(dotFlash)
{
    gBuffer.drawImage(Digits[11],60,10,this);
    gBuffer.drawImage(Digits[11],60,30,this);
}
else
{
    gBuffer.drawImage(Digits[10],135,10,this);
    gBuffer.drawImage(Digits[10],135,30,this);
}

//Meduplikat buffer ke layar
g.drawImage(Buffer,0,0,this);
}
}




Pemanggilan Melalui html:
<html>
<head>
<title>DigitalClock01</title>
</head>
<applet code="DigitalClock01" width=500 height=500>
</applet>
</html>

Agar program berjalan save image berikut ini dalam 1 folder dengan file digital clock dan save nama image berikut sesuai dengan nomor nya misalnya untuk image 1 save dengan nama 1.gif  begitu juga dengan image lain:





 





sedangkan untuk tanda titik 2 berwarna pink diatas save dengan nama dot_a dan dot b. Selamat mencoba semoga nilai laporannya oke....A++

0 komentar:

Posting Komentar