PEMROGRAMAN GRAFIK

“Sebuah gambar lebih bermakna daripada seribu kata”

Class Canvas

Kanvas adalah media yang digunakan oleh pelukis untuk menggambar objek sasaran.

Java menyediakan class Canvas yang bisa digunakan untuk mendukung penggambaran dalam program. Class ini bersifat abstrak.

Kita harus membuat sebuah class baru yang merupakan turunan dari class Canvas. Sebuah method paint(Graphics) akan dieksekusi secara otomatis untuk melakukan penggambaran.

Sebuah kanvas memiliki sifat transparan atau tembus pandang.

Class Graphics

Class graphics menyediakan banyak instruksi untuk melakukan penggambaran bentuk-bentuk geometri.

import javax.swing.*;

import java.awt.*;

class Kanvas extends Canvas

{

public void paint (Graphics g)

{

//Mengatur warna kanvas

getBackground(Color.white);

//Menggambar garis

g.drawLine(10,10,200,100);

//Menggambar Segiempat

g.drawRect(100,100,100,100);

//Menggambar segiempat dengan kelengkungan

g.drawRoundRect(50,50,100,100,40,40);

//Menggambar lingkaran

g.setColor(Color.red);

g.drawOval(30,30,50,100);

g.fillRoundRect(100,100,50,50,30,30);

//Menggambar Tulisan

g.setFont(new Font(“arial”,Font.BOLD,20);

g.drawString(“Coba Tulis”, 50,50);

}

}

Class FrameUtama extends JFrame

{

private Kanvas kanvas=new Kanvas();

FrameUtama()

{

super(“Demo Kanvas”);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocation(100,100);

setSize(250,150);

getContentPane().setLayout(new BorderLayout());

getContentPane().add(Kanvas,BorderLayout.CENTER);

show();

}

}

//CLASS UTAMA

public class DemoKanvas1

{

public static void main (String[] args)

{

new FrameUtama();

}

}

Gambar Bergerak

Gambar yang menarik kadang kala harus ditampilkan dengan cara animasi atau gambar bergerak. Pada dasarnya, teknik pembuatan tampilan animasi gambar diperoleh melalui beberapa cara :

  1. Perubahan bentuk gambar
  2. Perubahan warna gambar
  3. Perubahan lokasi gambar
  4. Kombinasi dari (1), (2), dan (3) di atas.

import javax.swing.*;

import java.awt.*;

import java.awtt.event.*;

class Kanvas extends Canvas

{

private int x;

private int y;

public Kanvas()

{

x=10;

y=30;

setBackground(Color.white);

}

public void paint (Graphics g)

{

g.setColor(new Color(0,0,255,50));

g.fillOval(x,y,30,30);

g.setColor(Color.Blue);

g.drawOval(x,y,30,30);

}

public void ubahX(int xx)

{

x=xx;

}

public int ubahX(int xx)

{

x=xx;

}

}

Class FrameUtama extends JFrame implements ActionListener

{

private Kanvas kanvas=new Kanvas();

private JPanel panelTombol=new JPanel;

private Button tombolMulai=new Button(“Mulai”);

private Button tombolSelesai=new Button(“Selesai”);

private Button tombolExit=new Button(“EXIT”);

private Jlabel indikator=new Jlabel(“>>>”);

private boolean jalankan=false;

private int arahBenda=1;

FrameUtama()

{

super(“Animasi Lingkaran”);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocation(100,100);

setSize(300,160);

tombolMulai.addActionListener(this);

tombolSelesai.addActionListener(this);

tombolExit.addActionListener(this);

indikatorArah.setFont(new Font(“arial Narrow”,Font.BOLD,15));

indikatorArah.setHorizontalAlignment(Jlabel.CENTER);

panelTombol.setLayout(new GridLayout(1,3));

panelTombol.add(tombolMulai);

panelTombol.add(tombolSelesai);

panelTombol.add(tombolExit);

getContentPane().setLayout(new BorderLayout());

getContentPane().add(Kanvas,BorderLayout.CENTER);

getContentPane().add(panelTombol,BorderLayout.SOUTH);

getContentPane().add(indikatorArah,BorderLayout.NORTH);

show();

while(true)

{

if(jalankan)

{

If(kanvas.nilaiX()>=kanvas.getWidth()-30)

arahBenda=-1;

else

if (kanvas.nilaiX()<=0)

arahBenda=1;

if (arahBenda==1)

{

kanvas.ubahX(kanvas.nilaiX()+5);

indikatorArah.setText(“>>>”);

}

else

{

kanvas.ubahX(kanvas.nilaiX()-5);

indikatorArah.setText(“<<<”);

}

kanvas.repaint();

try

{

Thread.sleep(5);

}

catch(Exception e)

{

}

}

}

}

public void actionPerformed(ActionEvent e)

{

Object objek=e.getSource();

if(objek==tombolMulai)

jalankan=true;

else

if(objek==tombolSelesai)

jalankan=false;

else

if(objek==tombolExit)

System.exit(0);

}

}

//CLASS UTAMA

public class Animasi

{

public static void main (String[] args)

{

new FrameUtama();

}

}

BlogCatalog

Computer Blogs - BlogCatalog Blog Directory
Powered By Blogger

Mengenai Saya

Foto saya
Saya adalah seorang Mahasiswa di sebuah Universitas Terkemuka di Riau, saat ini saya mencari dan memberikan ilmu yang selama ini saya cari dan dapat, agar berguna bagi kita semua.

Cari Blog Ini

Pengikut

Tentang Blog Saya

> Blog ini dirancang melalui berbagai hal pengalaman yang telah saya dapatkan selama ini, ilmu bukan untuk disimpan sendiri melainkan untuk disebarluaskan, untuk mengurangi tingkat kebodohan, dan yang pastinya ilmu yang diberikanpun merupakan ilmu yang bermanfaat. :)