“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 :
- Perubahan bentuk gambar
- Perubahan warna gambar
- Perubahan lokasi gambar
- 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();
}
}
Label: Pemograman Grafik
3 komentar:
Program ini Rancang melalui java
good job, friend!!
thx bgt..
Posting Komentar