jav2D

download jav2D

of 45

description

modul java 2D

Transcript of jav2D

Modul Pelatihan java 2D Java 2D

Asep Komarudin

Pemprograman grafis digunakan dalambanyak hal misalkan untuk memperoleh tampilan yang indah aplikasi simulasi, apilikasi animasi, aplikasi pengolahan citra sampai visi komputer.Dibawah ini akan dijelaskan sedikit mengenai idang grafis dalam java yang diharapkan menjadi bekal awal untuk memehami berbagai topik seputar garfis dalam java yang begitu luas. Grafis vektor Terdapat dua grafis yang berbeda diantaranya yaitu vektor dan raster grafis.grafis raster mewakili gambar sebagai kumppulan pixcel.grafis vektor adalah penggunaan geometris primitif seperti titik garis kurva atau polygon untuk mewakili gambar.primitif disini menggunakan persamaan matematika.Kedua jenis grafis diatas mempunyai kelebihan dan kekeurangan, kekurangan dari grafik vektor adalah: ukuran kecil kemampuan untuk zoom tanpa batas Bergerak, scaling, mengisi atau berputar tidak menurunkan kualitas gambar java 2D api menyediakan banyak alat untuk bekerja dengan vektor atau raster grafis. Java 2D API Java 2D APi digunakan untuk menggambar grafik dua dimensi menggunakan bahasa pemprograman java. kemampuan yang dimiliki Java 2D API Sebuah model yang seragam untuk perangkat render tampilan dan printer Berbagai geometris primitif Hit deteksi pada bentuk, text dan gambar sebuah model composite peningkatan dukungan warna mencetak dokumen Kontrol kualitas rendering java 2D API meningkatkan kulitas grafis, text dan kemampuan pencitraan windowing toolkit abstract (AWT) .AWT adalah toolkit asli untuk membuat user interface dan grafis di java.Untuk tujuan kompatibilitas, java 2D secara teknis adalah superset dari toolkit AWT. Java 2D adalah teknologi yang kuat.Hal ini dapat dibuat untuk antarmuka pengguna yangkaya game,animasi, aplikasi multimedia atau berbagai efek khusus. Contoh program sederhana: package asep.java2D.sekeletonProgram; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; /** [email protected] 1

Modul Pelatihan java 2D * * @author asep */ public class Sekeleton2D extends JPanel{ @Override public void paint(Graphics g) { Graphics2D gd=(Graphics2D) g; gd.drawString("asep Conth 2D", 50, 50); } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Sekeleton2D sd=new Sekeleton2D(); JFrame frame=new JFrame("Contoh grafik 2D"); frame.add(sd); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 250); frame.setLocationRelativeTo(null); frame.setVisible(true); } } Keluarannya adalah:

Asep Komarudin

Penjelasan Program: @Override public void paint(Graphics g) {

[email protected]

2

Modul Pelatihan java 2D //kode program lainnya

Asep Komarudin

} Semua gambar dilakuakn di pain() metode caranya kita mengoperide metode pain Graphics2D gd=(Graphics2D) g; Kelas Graphics2D adalah kelas dasar untuk rendering grafis di java 2D.Ini merupakan perangkat yang biasa digunakan.ini memperluas objek garafis terdahulu.Pendeklarasian ini diperlukan untuk mendapatkan akses kesemua oprasi. gd.drawString("asep Conth 2D", 50, 50); Disini kita menggambar string pada panel dengan jarak dari sampingkiri 50 dan atas 50. dasar Pemprograman Grafis Salah satu cara untuk membuat aplikasi grafis dengan java adalah dengan membuat kelas turunan dari kelas canvas.Dalam kelas inilah kita meletakan gambar dan animasi, dan membentuk sebuah objek untuk mengakses gambar yangkita buat. Contohnya : package asep.java2D.sekeletonProgram; import java.awt.BorderLayout; import java.awt.Canvas; import javax.swing.JFrame; /** * * @author asep */ public class ContohCanvas extends Canvas { @Override public void paint(Graphics g) { } } class Menggambar extends JFrame{ ContohCanvas canvas=new ContohCanvas(); public Menggambar() { super("aplikasi grafis"); setLocation(100, 100); setSize(250, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void componenVisual(){ getContentPane().setLayout(new BorderLayout()); getContentPane().add(canvas,BorderLayout.CENTER); setVisible(true); } /** [email protected] 3

Modul Pelatihan java 2D * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Menggambar m=new Menggambar(); m.componenVisual(); } } Keluarannya adalah:

Asep Komarudin

Penjelasan program: public class ContohCanvas extends Canvas { @Override public void paint(Graphics g) { } } Sintak ini merupakan kelas tempat menggambar berbagai objek gambar .Class inilah yang kita gunakan untk meletakan gambar-gambar yang kita bangundengan kode tertentu.Kode tersebut diletakan pada metode paint.pada metode pain() diatas tidak terdapat baris kode sehingga output yang keluar adalah frame kosong tanpa gambar apapun. class Menggambar extends JFrame{ ContohCanvas canvas=new ContohCanvas(); ...................... ........................ } Class Menggambar adalah adalah program grafis kita pada kelas ini kita membentuk objek dengan mengunakan kelas ContohCanvas dengan nama objek cnvas. getContentPane().setLayout(new BorderLayout()); getContentPane().add(canvas,BorderLayout.CENTER); Layout diataur mengunakan borderlayout dan objek diletakan pada salahsatu diantara lima posisi yang ada. Berikut adalah contoh kita memasukan berbagai objek gambar kedlah canvas

[email protected]

4

Modul Pelatihan java 2D package asep.java2D.sekeletonProgram; import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; /** * * @author asep */ public class ContohCanvas extends Canvas { @Override public void paint(Graphics g) { g.setColor(Color.RED); g.drawLine(10, 10, 120, 10); g.setColor(Color.BLUE); g.drawRect(10, 20, 100, 50); g.setColor(Color.yellow); g.drawOval(120, 20, 50, 50); g.drawString("asep", 100, 100); setBackground(Color.CYAN); } } class Menggambar extends JFrame{ ContohCanvas canvas=new ContohCanvas(); public Menggambar() { super("aplikasi grafis"); setLocation(100, 100); setSize(250, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void componenVisual(){ getContentPane().setLayout(new BorderLayout()); getContentPane().add(canvas,BorderLayout.CENTER); setVisible(true); } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here [email protected] 5

Asep Komarudin

Modul Pelatihan java 2D Menggambar m=new Menggambar(); m.componenVisual(); } }

Asep Komarudin

Pada bagian kode yang berwarna merah adalah perubahan dari kode yang dibuat sebelumnya diatas. Penjelasan dari program ini public class ContohCanvas extends Canvas { @Override public void paint(Graphics g) { g.setColor(Color.RED); g.drawLine(10, 10, 120, 10); g.setColor(Color.BLUE); g.drawRect(10, 20, 100, 50); g.setColor(Color.yellow); g.drawOval(120, 20, 50, 50); g.drawString("asep", 100, 100); setBackground(Color.CYAN); } } g.setColor(Color.RED); Digunakan untuk mengatur warna dari objek gambar g.drawLine(10, 10, 120, 10); Digunakan untuk menggambar objrk garis ,argumen pertama dan kedua menunjukan ordinat titik awal argumen ke tiga dan ke empat menunjukan koordinat titik akhir. g.drawRect(10, 20, 100, 50); Digunakan untuk menggambar bentuk segi empat argumen pertama dan kedua menunjukan ujung dari kiri atas objek ,argumrnt tiga dan empat menunjukan ujung kanan bawah dari objek persegi. g.drawOval(120, 20, 50, 50); Digunakan untuk mengggambar bentuk lingkaran, argument pertama dan kedua merupakan koordinat titik pusat ,argumrnt ke tiga jarak horizontal dan argument ke empat jarak vertikal. g.drawString("asep", 100, 100); [email protected] 6

Modul Pelatihan java 2D

Asep Komarudin

Digunakan untuk menggambar bentuk string , argument pertama merupakan string yang akan ditampilkan argument pertama dan kedua menunjukan posisi dari tulisan. BASIC DRAWING 1. Points Grafis paling sederhana dan primitif adalah titik.Program ini menunjukan titik pada layar.Sebenarnya tidak ada metode untuk menggambar titik pada java 2D.Untuk menggambar titik saya mengunakan drawLine() metode. Contoh: package asep.java2D.Basik; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Insets; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; /** * * @author asep */ public class MengambarTitk extends JPanel{ @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D gd=(Graphics2D) g; gd.setColor(Color.blue); Dimension size=getSize(); Insets insets=getInsets(); int w=size.width-insets.left-insets.right; int h=size.height-insets.top-insets.bottom; Random r=new Random(); for(int i=0;i