PAINTING AND STROKING.

Slides:



Advertisements
Presentasi serupa
Pemrograman JAVA (TIB09)
Advertisements

Java Applets Pertemuan 7
Konsep Abstract Windowing Toolkit (AWT)
Package As’ad Djamalilleil
Struktur Kode Aplikasi Java (2) As’ad Djamalilleil
Antarmuka Tingkat Bawah (Canvas)
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Abstract windowing toolkit & swing
Graphic User Interface
- PERTEMUAN 4 - PERULANGAN
Flow Control & Looping Pertemuan 4 Pemrograman Berbasis Obyek Oleh Tita Karlita.
PELATIHAN JAVA FUNDAMENTAL
KONSEP OOP DAN AWT [ RIO PRIANTAMA ].
Graphical User Interface (GUI)
Object Oriented Programming with JAVA 2011/2012
Public class RelasiDemo { public static void main(String[] args) { //beberapa nilai int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel...");
Pemrograman Berorientasi Objek
Java GUI Container Pertemuan 2
Dewi Kusumaningsih, M.Kom
03 Elemen Dasar Bahasa Java
1 Pertemuan 12 MEMBUAT USER INTERFACE DENGAN SWING Matakuliah: M0074/PROGRAMMING II Tahun: 2005 Versi: 1/0.
KONSEP SWING.
Class & Object Disusun Oleh: Reza Budiawan Untuk:
Graphical User Interface (GUI)
Inner Class dan Eksepsi (Exception)
Stack (Tumpukan) Pertemuan 4 Season 1
Access Modifier.
KONSEP AWT.
Java GUI PBO.
POLYMORPHISM (KEBANYAKRUPAAN)
Dewi Kusumaningsih, M.Kom
DASAR DASAR JAVA Dengan Netbans PBO Java.
Constructor dan Overloading
POLYMORPHISM (KEBANYAKRUPAAN)
BAB ENCAPSULATION ( Enkapsulasi )
Basic GUI Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 13 Tahun : 2008 Versi : 1/0.
Java Progamming Membangun GUI dengan Swing
MODIFIER JAVA.
Pengorganisasian Class
Teori Pertemuan 8 “Pengorganisasian Class”
Tugas Minggu Ke 9 PBO Siti Halisah
Dijalankan dengan interpreter
Constructor overloading
Skenario 2: Hujan Pemrograman Game Eko Prasetyo Teknik Informatika
JFC dan Swing U Abd. Rohim, MT mailto:
QuadCurve2D QuadCurve2D merepresentasikan sebuah quadratic curve yang didefinisikan dengan tiga buah titik kontrol. Titik pertama dan terakhir merupakan.
Struktur Kode Aplikasi Java (2)
As’ad Djamalilleil Package As’ad Djamalilleil
JAVA FUNDAMENTAL (Object Oriented Programming)
JAVA FUNDAMENTAL.
Karakteristik Pemrograman Berorientasi Objek
PBO Lanjutan Membuat Kelas.
MODUL PRATIKUM PEMOGRAMAN BERORIENTASI OBJEK (OOP)
Pemrograman Berorientasi Objek
Dasar Bahasa Java.
Pilar Object Oriented Programming
INPUT DATA DI JAVA.
Tugas Akhir Java Fundamental Syahrul Mauluddin S.Kom.
Pilar Object Oriented Programming
PACKAGE.
Dhefi Cahyadi, S. Kom ARRAY / LARIK Lanjutan Dhefi Cahyadi, S. Kom
Method Java Fundamental Syahrul Mauluddin S.Kom, M.Kom.
Pilar Object Oriented Programming
Pemrograman Berorientasi Objek <PBO>
Software Untuk Grafika Komputer
Lanjutan Grafik 2D.
MENGGAMBAR OBJEK GEOMETRIS GeneralPath
Bahasa Pemrograman (Pemrograman Visual)
Pertemuan 6 Praktek Pembuatan Program dengan menggunakan Inheritance
Pertemuan 2 Praktek Pembuatan Program Class dan Objek
Transcript presentasi:

PAINTING AND STROKING

Painting Pada pembahasan sebelumnya, kita telah melihat bagaimana bentuk-bentuk dari bidang grafis yang dibangun dengan API 2D. Tetapi apa yang akan anda lakukan dengan bentuk bidang grafis tersebut ?  Painting adalah proses filling (pengisian) pada tampilan objek grafis dengan warna, color gradient (pencampuran warna), atau texture (warna berkontur).  Stroking adalah proses dari penggambaran sebuah garis bidang grafis. Anda dapat menggambar sebuah garis menggunakan lebar garis, jenis garis dan warna garis yang berbeda-beda.

Di sebelah kiri, ada sebuah lingkaran yang telah terisi dengan gradien color. Ditengah, sebuah lingkaran yang dimana garisnya diberi warna yang penuh (solid color) yang membuat telihat tebal. Dikanan, sebuah lingkaran dengan garis yang digambar dalam bentuk garis yang sama hanya saja garis tersebut di beri efek color gradient. Adapun kelas-kelas yang memproduksi gambar diatas menggunakan metode dan kelas seperti : setPaint(), setStroke(), GradientPaint dan BasicStroke.

setPaint() import java.awt.Color; import java.awt.Container; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import javax.swing.JComponent; import javax.swing.JFrame; public class MainClass{   public static void main(String[] args) {     JFrame jf = new JFrame("Demo");  Container cp = jf.getContentPane();     MyCanvas tl = new MyCanvas();     cp.add(tl);         jf.setSize(300, 200);     jf.setVisible(true);   } } class MyCanvas extends JComponent {   public void paint(Graphics g) {     Graphics2D g2 = (Graphics2D)g;     Ellipse2D e = new Ellipse2D.Float(40, 40, 120, 120);     GradientPaint gp = new GradientPaint(75, 75, Color.white,         95, 95, Color.gray, true);     g2.setPaint(gp);     g2.fill(e);   } }

setStroke()   } } class MyCanvas extends JComponent {   Shape shape;   public MyCanvas() {     shape = create();   }   protected Shape create() {     float cm = 72 / 2.54f;     return new Rectangle2D.Float(cm, cm, 2 * cm, cm);   }   public void paint(Graphics g) {     Graphics2D g2 = (Graphics2D) g;     Stroke stroke = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0,         new float[] { 3, 1 }, 0);     g2.setStroke(stroke);         g2.setPaint(Color.black);     g2.draw(shape);       } } import java.awt.BasicStroke; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.Stroke; import java.awt.geom.Rectangle2D; import javax.swing.JComponent; import javax.swing.JFrame; public class MainClass{   public static void main(String[] args) {     JFrame jf = new JFrame("Demo");     Container cp = jf.getContentPane();     MyCanvas tl = new MyCanvas();     cp.add(tl);     jf.setSize(300, 200);     jf.setVisible(true);

GradientPaint import java.awt.BasicStroke; import java.awt.Color; public void init() { setBackground(Color.white); setForeground(Color.white); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setPaint(Color.gray); int x = 5; int y = 7; // fill RoundRectangle2D.Double GradientPaint redtowhite = new GradientPaint(x, y, Color.red, 200, y, Color.blue); g2.setPaint(redtowhite); g2.fill(new RoundRectangle2D.Double(x, y, 200, 200, 10, 10)); g2.setPaint(Color.black); g2.drawString("Filled RoundRectangle2D", x, 250); } public static void main(String s[]) { JFrame f = new JFrame(""); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); JApplet applet = new GradientPaintDemo2D(); f.getContentPane().add("Center", applet); applet.init(); f.pack(); f.setSize(new Dimension(300, 300)); f.show(); } import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.geom.Arc2D; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import javax.swing.JApplet; import javax.swing.JFrame; public class GradientPaintDemo2D extends JApplet {

BasicStroke.  public void paint(Graphics g) {     Graphics2D g2 = (Graphics2D) g;     g2.setStroke(new BasicStroke(3.0f));     g2.setPaint(Color.blue);         Rectangle r = new Rectangle(5,5,200,200);         g2.draw(r);   }   public static void main(String s[]) {     JFrame f = new JFrame();     f.addWindowListener(new WindowAdapter() {       public void windowClosing(WindowEvent e) {         System.exit(0);       }     });     BasicStrokeDemo p = new BasicStrokeDemo();     f.getContentPane().add("Center", p);     p.init();     f.pack();     f.setSize(new Dimension(250, 250));     f.show();   } } import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; public class BasicStrokeDemo extends JPanel {   public void init() {     setBackground(Color.white);   }     

Solid Color Kelas java.awt.Color diimplementasikan ke antarmuka Paint. Dengan demikian jenis Color apa saja dapat digunakan untuk mengisi bidang dari sebuah shape. penanganan dari proses pewarnaan adalah kemungkinan besar yang dapat terus dikembangkan. Pada saat ini, perhatikan kelas-kelas dari Color yang menyertakan beberapa penamaan warna sebagai variabel static : public static final Color white; public static final Color lightGray; public static final Color gray; public static final Color darkGray; public static final Color black; public static final Color red; public static final Color pink; public static final Color orange; public static final Color yellow; public static final Color green; public static final Color magenta; public static final Color cyan;

Solid Color Anda dapat menciptakan warna menggunakan nilai integer atau float : Public Color (int r, int g, int b) Konstruktor ini menciptakan Color yang baru menggunakan nilai yang dispesifikasikan untuk red, green dan blue. Nilai tersebut haruslah dalam rentang dari dan sampai 255. Public Color(float r, float g, float b) Konstruktor ini menciptakan Color yang baru dengan menggunakan nilai dari red, green dan blue. Nilai yang akan dipakai haruslah berada dalam rentang dari 0,0 sampai 1,0.

Solid Color import java.awt.*; import java.awt.geom.*; public class SolidPaint extends ApplicationFrame { public static void main(String[] args) SolidPaint f = new SolidPaint(); f.setTitle("SolidPaint v1.0"); f.setSize(200, 200); f.center(); f.setVisible(true); } public void paint(Graphics g)

Swing Color Chooser Dialog Public static Color showDialog(Component component, String title, Color initialColor) Metode ini menampilkan dialog dari pilihan warna. Component yang disuplai digunakan sebagai komponen parent dari dialog tersebut. Dialog yang ada akan mensuplai title; pengaturan ini akan diinisialisasikan agar dpat menunjukkan initialColor yang sudah diberikan.

{public void actionPerformed(ActionEvent ae) {Color c = JColorChooser.showDialog (RedTown.this, "Choose a color...“, getBackground()); if (c != null) getContentPane(). setBackground(c); }}); addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent we) { System.exit(0); } import java.awt.*; import java.awt.event.*; import javax.swing.*; public class RedTown extends JFrame { public static void main(String[] args) new RedTown(); } public RedTown() super("RedTown v1.0"); createUI(); setVisible(true); protected void createUI() setSize(400, 400); setLocation(100, 100); getContentPane().setLayout(new GridBagLayout()); JButton colorButton = new JButton("Choose a color..."); getContentPane().add(colorButton); colorButton.addActionListener(new ActionListener()