project komputer grafik

79
1. Aplikasi Program Komputer Grafik Saya Menggunakan 14 Kelas Dalam membuat aplikasi ini : 1. Utama 8. Tank 2. Menu 9. Orang 3. Design 10. LaunchProgressBar 4. Arc 11. empaJam 5. Oval 12. GrafikGempa 6. Roundrect 13. ImageZoomer 7. Rect 14. ImageZoomerFrame

Upload: hamimsuyuti

Post on 21-Jan-2017

436 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Project Komputer Grafik

1. Aplikasi Program Komputer Grafik

Saya Menggunakan 14 Kelas Dalam membuat aplikasi ini :

1. Utama 8. Tank

2. Menu 9. Orang

3. Design 10. LaunchProgressBar

4. Arc 11. empaJam

5. Oval 12. GrafikGempa

6. Roundrect 13. ImageZoomer

7. Rect 14. ImageZoomerFrame

Page 2: Project Komputer Grafik

1. Program yang Pertama Kelas Utama

Source :

import javax.swing.JDesktopPane;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Image;

import javax.swing.ImageIcon;

import java.util.logging.Level;

import java.util.logging.Logger;

public class utama extends JDesktopPane {

protected void paintComponent(Graphics g) {

try {

Graphics2D graphics = (Graphics2D) g.create();

Image img = new ImageIcon(getClass().getResource("kayu2.jpg")).getImage();

graphics.drawImage(img, 0, 0, getWidth(), getHeight(), null);

graphics.dispose();

}catch ( Exception e ){

System.exit(0);

}

}

public static void main ( String [] args ) {

LaunchProgressBar pb = new LaunchProgressBar();

pb.setVisible(true);

for(int i=0;i<=100;i++)

try {

pb.getProgressBar().setValue(i);

Thread.sleep(100);

} catch (InterruptedException ex) {

Logger.getLogger(LaunchProgressBar.class.getName()).log(Level.SEVERE, null,ex); }

pb.dispose();

new menu(); } }

Page 3: Project Komputer Grafik

Proses :

- Saya Menggunakan import java.awt.* dan import javax.swing.* dalam kelas ini.

- Lalu saya menggunakan gambar kayu2.jpg sebagai background pertama program

ketika di jalankan

- Lalu saya menggunakan progress bar sebagai tambahan pada saat loading ke program

sebagai background pertama sebelum program berjalan sepenuhnya.

- Class ini hanya sebagai kelas induk atau kelas utama karena Ketika class ini di

jalankan maka langsung akan memangil kelas menu karena di method main nya

terdapat new menu().

Output :

Output ini adalah proses dari LaunchProgressBar yang membuat tampilan loading menjadi

lebih menarik

Page 4: Project Komputer Grafik

Ini tampilan dari Menu utama

2. Program yang Kedua class menu

Source :

import java.awt.*;

import java.awt.event.*;

Page 5: Project Komputer Grafik

import javax.swing.*;

import java.util.*;

import java.text.*;

import javax.swing.Timer;

import javax.swing.ImageIcon;

public class menu extends JFrame implements ActionListener {

private static Color rect = new Color (51,51,255) ; private static Color roundrect =

new Color (255,51,51) ; private static Color oval = new Color (255,102,255) ;

private static Color arc = new Color (51,255,51) ; private static Color usb = new

Color (102,255,51) ; private static Color putih = new Color (255,255,255) ;

JPanel ToolbarPanel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));

JMenuBar mb = new JMenuBar () ;

JMenu about = new JMenu (" About ") ;

JMenuItem aboutt = new JMenuItem (" Tentang Saya ");

JDesktopPane pane = new JDesktopPane();

JButton btnrect = new JButton (" Rectangle ");

JButton btnroundrect = new JButton (" Round Rectangle ");

JButton btnoval = new JButton (" Oval ");

JButton btnarc = new JButton (" Arc ");

JButton btnorg = new JButton (" Gambar Orang ");

JButton btntank = new JButton (" tank ");

JToolBar tb = new JToolBar ();

menu () {

setTitle (" Program Komputer Grafik " );

setSize (1370,730);

Page 6: Project Komputer Grafik

pane = new utama ();

addWindowListener (new WindowAdapter () {

public void windowClosing (WindowEvent we) {

Keluar ();

}

});

setJMenuBar (mb);

mb.add(about);

// add(pane);

ToolbarPanel1.add (btnrect);

ToolbarPanel1.add (btnroundrect);

ToolbarPanel1.add (btnoval);

ToolbarPanel1.add (btnarc);

ToolbarPanel1.add (btnorg);

ToolbarPanel1.add (btntank);

tb.add (ToolbarPanel1);

pane.setBackground(Color.gray);

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

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

btnrect.setToolTipText ("Rectangle");

btnroundrect.setToolTipText ("Round Rectangle");

btnoval.setToolTipText ("Oval");

btnarc.setToolTipText ("Arc");

btnorg.setToolTipText ("Gambar Orang");

btntank.setToolTipText ("Tank");

btnrect.addActionListener (this);

Page 7: Project Komputer Grafik

btnroundrect.addActionListener (this);

btnoval.addActionListener (this);

btnarc.addActionListener (this);

btnorg.addActionListener (this);

btntank.addActionListener (this);

about.addActionListener (this);

// warna background

btnrect.setBackground (rect); btnroundrect.setBackground (roundrect);

btnoval.setBackground (oval); btnarc.setBackground (arc);

btnorg.setBackground (usb); btntank.setBackground (rect);

//warna foreground

btnrect.setForeground (putih); btnroundrect.setForeground (putih);

btnoval.setForeground (putih); btnarc.setForeground (putih);

btnorg.setForeground (putih); btntank.setForeground (putih);

btnrect.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnroundrect.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnoval.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnarc.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnorg.setFont(new Font("Times New Roman",Font.PLAIN,14));

btntank.setFont(new Font("Times New Roman",Font.PLAIN,14));

setVisible(true);

}

private void Keluar () {

try {

int reply = JOptionPane.showConfirmDialog (this,

"Yakin Mau Keluar?",

"Terima Kasih ", JOptionPane.YES_NO_OPTION,

JOptionPane.PLAIN_MESSAGE);

if (reply == JOptionPane.YES_OPTION) {

System.exit(0);

Page 8: Project Komputer Grafik

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

catch (Exception e) {

}

}

public static void main ( String [] args ) {

new menu();

}

public void actionPerformed (ActionEvent evt) {

try{

if (evt.getSource()==btnrect) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtstatus().setText("1");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

kg.getLblheight().setVisible (true); kg.setTitle (" Komputer Grafik > Rectangle

");

}

if (evt.getSource()==btnroundrect) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtxdiam().setVisible (true);

kg.getTxtydiam().setVisible (true); kg.getTxtstatus().setText("2");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true ) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

Page 9: Project Komputer Grafik

kg.getLblheight().setVisible (true); kg.getLblxdiam().setVisible (true);

kg.getLblydiam().setVisible (true);

kg.setTitle (" Komputer Grafik > Round Rectangle ");

}

if (evt.getSource()==btnoval) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtstatus().setText("3");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

kg.getLblheight().setVisible (true); kg.setTitle (" Komputer Grafik > Oval ");

}

if (evt.getSource()==btnarc) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtxdiam().setVisible (true);

kg.getTxtydiam().setVisible (true); kg.getTxtstatus().setText("4");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true ) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

kg.getLblheight().setVisible (true); kg.getLblxdiam().setVisible (true);

kg.getLblydiam().setVisible (true);

kg.getLblxdiam().setText("StartAngle"); kg.getLblydiam().setText("arcAngle");

kg.setTitle (" Komputer Grafik > Arc ");

}

if (evt.getSource()==btnorg) {

Page 10: Project Komputer Grafik

JFrame frame = new JFrame();frame.setTitle("Usb");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new orang(); applet.init(); frame.getContentPane().add(applet);

frame.pack(); frame.setVisible(true);

}

if (evt.getSource()==btntank) {

JFrame frame = new JFrame(); frame.setTitle("Catur");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new tank(); applet.init();

frame.getContentPane().add(applet);frame.pack(); frame.setVisible(true);

}

} catch(Exception e) {

System.err.println("error"+e.getMessage());

}

}

Page 11: Project Komputer Grafik

Proses :

Page 12: Project Komputer Grafik

- Saya menggunakan beberapa component toolbar , JButton , JmenuBar ,

Jmenu ,JmenuItem ,Jmenu , dan DesktopPane dalam class ini .,

- Masing-masing component tersebuat adlaha sebagai berikut :

- Toolbar berfungsi untuk menampung button.

- Jbutton Berfungsi untuk memanggil class-class lain seperti arc , rect ,roundrect dll.

- Jmenubar, Jmenu dan JMenuItem berfungsi unutk menampilkan about yang berada

paling atas.

- DesktopPane berfungsi untuk menampilkan gambar kayu2.jpg yang tadi telah di buat

di class utama.

Output :

3. Program yang Ketiga class design

Source :

import javax.swing.*;

import java.awt.event.*;

import java.sql.*;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

Page 13: Project Komputer Grafik

import javax.swing.table.*;

import java.awt.*;

import java.util.Date;

import javax.swing.border.EmptyBorder;

import java.awt.Graphics ;

public class design extends JFrame implements ActionListener {

// JLabel info = new JLabel ( " * cari : case sensitive");

JPanel panel = new JPanel ();

JLabel lblx1 = new JLabel (" x1 ");

JLabel lblx2 = new JLabel (" x2 ");

JLabel lblwidth = new JLabel (" width ");

JLabel lblheight = new JLabel (" height ");

JLabel lblxdiam = new JLabel (" xdiam ");

JLabel lblydiam = new JLabel (" ydiam ");

JLabel lblWall = new JLabel ();

JTextField txtstatus = new JTextField ();

JTextField txtx1 = new JTextField ();

JTextField txtx2 = new JTextField ();

JTextField txtwidth = new JTextField ();

JTextField txtheight = new JTextField ();

// JTextField txtjabatan = new JTextField ();

JTextField txtxdiam = new JTextField ();

JTextField txtydiam = new JTextField ();

JButton btnproses = new JButton (" Proses ");

public design(){

super (" Komputer Grafik ");

setSize (430,425);

panel.setBorder(new EmptyBorder(5, 5, 5, 5));

Page 14: Project Komputer Grafik

setContentPane(panel);

panel.setLayout(null);

// info.setBounds (400,50,150,25);

lblx1.setBounds (50,50,75,25);

lblx2.setBounds (50,100,75,25);

lblwidth.setBounds (50,150,75,25);

lblheight.setBounds (50,200,75,25);

lblxdiam.setBounds (50,250,75,25);

lblydiam.setBounds (50,300,75,25);

txtx1.setBounds (110,50,175,25);

txtx2.setBounds (110,100,175,25);

txtwidth.setBounds (110,150,175,25);

txtheight.setBounds (110,200,175,25);

txtxdiam.setBounds (110,250,175,25);

txtydiam.setBounds (110,300,175,25);

btnproses.setBounds (300,50,100,25);

add(lblx1);

add(lblx2);

add(lblwidth);

add(lblheight);

add(lblxdiam);

add(lblydiam);

add(txtx1);

add(txtx2);

add(txtwidth);

add(txtheight);

add(txtxdiam);

add(txtydiam);

Page 15: Project Komputer Grafik

add(btnproses);

lblx1.setForeground(Color.white);

lblx2.setForeground(Color.white);

lblwidth.setForeground(Color.white);

lblheight.setForeground(Color.white);

lblxdiam.setForeground(Color.white);

lblydiam.setForeground(Color.white);

lblWall.setIcon(new ImageIcon(design.class.getResource("bg.jpg")));

lblWall.setBounds(0, 0, 430, 500);

panel.add(lblWall);

setLocationRelativeTo(null);

setVisible(true);

btnproses.addActionListener(this);

txtx1.setVisible(false); txtx2.setVisible(false); txtwidth.setVisible(false);

txtheight.setVisible(false); txtxdiam.setVisible(false); txtydiam.setVisible(false);

btnproses.setVisible(false) ;

lblx1.setVisible(false); lblx2.setVisible(false); lblwidth.setVisible(false);

lblheight.setVisible(false); lblxdiam.setVisible(false); lblydiam.setVisible(false);

}

public void setTxtstatus ( JTextField txtstatus ) {

this.txtstatus = txtstatus ;

}

public JTextField getTxtstatus () {

return txtstatus ;

}

public void setTxtx1 ( JTextField txtx1 ) {

this.txtx1 = txtx1 ;

}

Page 16: Project Komputer Grafik

public JTextField getTxtx1 () {

return txtx1 ;

}

public void setTxtx2( JTextField txtx2 ) {

this.txtx2 = txtx2 ;

}

public JTextField getTxtx2 () {

return txtx2 ;

}

public void setTxtwidth ( JTextField txtwidth ) {

this.txtwidth = txtwidth ;

}

public JTextField getTxtwidth () {

return txtwidth ;

}

public void setTxtheight ( JTextField txtheight ) {

this.txtheight = txtheight ;

}

public JTextField getTxtheight () {

return txtheight ;

}

public void setTxtxdiam ( JTextField txtxdiam ) {

this.txtxdiam = txtxdiam ;

}

public JTextField getTxtxdiam () {

return txtxdiam ;

}

public void setTxtydiam ( JTextField txtydiam ) {

this.txtydiam = txtydiam ;

Page 17: Project Komputer Grafik

}

public JTextField getTxtydiam () {

return txtydiam ;

}

// label

public void setLblx1 ( JLabel lblx1 ) {

this.lblx1 = lblx1 ;

}

public JLabel getLblx1 () {

return lblx1 ;

}

public void setLblx2 ( JLabel lblx2 ) {

this.lblx2 = lblx2 ;

}

public JLabel getLblx2 () {

return lblx2 ;

}

public void setLblwidth ( JLabel lblwidth ) {

this.lblwidth = lblwidth ;

}

public JLabel getLblwidth () {

return lblwidth ;

}

public void setLblheight ( JLabel lblheight ) {

this.lblheight = lblheight ;

}

public JLabel getLblheight () {

return lblheight ;

}

Page 18: Project Komputer Grafik

public void setLblxdiam ( JLabel lblxdiam ) {

this.lblxdiam = lblxdiam ;

}

public JLabel getLblxdiam () {

return lblxdiam ;

}

public void setLblydiam ( JLabel lblydiam ) {

this.lblydiam = lblydiam ;

}

public JLabel getLblydiam () {

return lblydiam ;

}

public void setBtnproses ( JButton btnproses ) {

this.btnproses = btnproses ;

}

public JButton getBtnproses () {

return btnproses ;

}

public static void main (String[]eza) {

new design();

}

private void bersih() {

txtx1.setText(""); txtx2.setText("");

txtwidth.setText(""); txtheight.setText("");

txtxdiam.setText(""); txtydiam.setText("");

}

Page 19: Project Komputer Grafik

public void actionPerformed (ActionEvent evt) {

String xx1 = txtx1.getText(); int xxx1 = Integer.parseInt(xx1); String yy2 =

txtx2.getText(); int yyy2 = Integer.parseInt(yy2);

String width1 = txtwidth.getText(); int width11 = Integer.parseInt(width1); String

height1 = txtheight.getText(); int height11 = Integer.parseInt(height1);

// String xdiam1 = txtxdiam.getText(); int xdiam11 = Integer.parseInt(xdiam1);

String ydiam1 = txtydiam.getText(); int ydiam11 = Integer.parseInt(ydiam1);

try{

if(evt.getSource()==btnproses) {

if (txtstatus.getText().equals("1")) {

rect re = new rect (xxx1,yyy2,width11,height11);

re.setTitle ( " Komputer Grafik > Rectangle " ) ;

re.setVisible(true);

} else if (txtstatus.getText().equals("2")) {

String xdiam1 = txtxdiam.getText(); int xdiam11 =

Integer.parseInt(xdiam1); String ydiam1 = txtydiam.getText(); int ydiam11 =

Integer.parseInt(ydiam1);

roundrect rr = new

roundrect(xxx1,yyy2,width11,height11,xdiam11,ydiam11);

rr.setTitle ( " Komputer Grafik > Round Rect " ) ;

rr.setVisible (true);

} else if (txtstatus.getText().equals("3")) {

oval ov = new oval (xxx1,yyy2,width11,height11);

ov.setTitle ( " Komputer Grafik > Oval " ) ;

ov.setVisible(true);

}else if (txtstatus.getText().equals("4")) {

String xdiam1 = txtxdiam.getText(); int xdiam11 =

Integer.parseInt(xdiam1); String ydiam1 = txtydiam.getText(); int ydiam11 =

Integer.parseInt(ydiam1);

arc ar = new arc(xxx1,yyy2,width11,height11,xdiam11,ydiam11);

ar.setTitle ( " Komputer Grafik > Arc " ) ;

ar.setVisible (true);

}

}

Page 20: Project Komputer Grafik

}catch(Exception e) {System.err.println("error"+e.getMessage());}

}

}

Page 21: Project Komputer Grafik

Proses :

- Saya menggunakan beberapa komponen dalam class ini seperti : panel , label ,

textfield , button .

- Masing-masing komponen tersebut mempunyai fungsi masing-masing seperti :

- Panel berfungsi untuk menampung komponen-komponen yang terdapat pada class ini.

Output :

- Output untuk Rectangle

- Output Untuk Round Rect

Page 22: Project Komputer Grafik

- Output untuk Oval

- Output untuk Arc

Page 23: Project Komputer Grafik

4. Program yang Keempat class arc

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

public class arc extends JFrame {

int x1 ; int y1 ; int width ; int height ; int xdiam ; int ydiam ;

public arc (int x1 , int y1 , int width ,int height , int xdiam , int ydiam ) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ; this.xdiam =

xdiam ; this.ydiam = ydiam ;

}

public void paint(Graphics g) {

g.drawArc ( x1,y1,width,height,xdiam,ydiam ) ;

}

}

Page 24: Project Komputer Grafik

Proses :

- Saya menggambat grafik arc . dimana gambar tersebut sesuai dengan yang di input

oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat arc.

- Untuk gambar di bawah ini saya menggunakan kordinat (50,50,100,100,0,-180)

Output :

Page 25: Project Komputer Grafik

5. Program yang Kelima class oval

Source :

import java.awt.Graphics ;

import javax.swing.JFrame ;

import javax.swing.* ;

public class oval extends JFrame {

int x1 ; int y1 ; int width ; int height ;

public oval (int x1 , int y1 , int width ,int height) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ;

}

public void paint ( Graphics g ) {

g.drawOval ( x1,y1,width,height ) ;

}

Page 26: Project Komputer Grafik

}

Proses :

- Saya menggambat grafik Oval . dimana gambar tersebut sesuai dengan yang di input

oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat Oval.

- Untuk gambar di bawah ini saya menggunakan kordinat ( 50,50,200,200 ) ;

Page 27: Project Komputer Grafik

Output :

6. Program yang Keenam class roundrect

Source :

import java.awt.Graphics ;

import javax.swing.JFrame ;

import javax.swing.* ;

public class roundrect extends JFrame {

int x1 ; int y1 ; int width ; int height ; int xdiam ; int ydiam ;

public roundrect (int x1 , int y1 , int width ,int height , int xdiam , int ydiam ) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ; this.xdiam =

xdiam ; this.ydiam = ydiam ; }

public void paint ( Graphics g ) {

g.drawRoundRect ( x1,y1,width,height,xdiam,ydiam ) ;

}

}

Page 28: Project Komputer Grafik

Proses :

- Saya menggambat grafik RoundRect . dimana gambar tersebut sesuai dengan yang di

input oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat RoundRect.

- Untuk gambar di bawah ini saya menggunakan kordinat ( 50,50,100,100 ,20,20) ;

Output :

Page 29: Project Komputer Grafik

7. Program yang Ketujuh class rect

Source :

import java.awt.Graphics ;

import javax.swing.JFrame ;

import javax.swing.* ;

public class rect extends JFrame {

int x1 ; int y1 ; int width ; int height ;

public rect (int x1 , int y1 , int width ,int height) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ; }

public void paint ( Graphics g ) {

g.drawRect ( x1,y1,width,height ) ; } }

Page 30: Project Komputer Grafik

Proses :

- Saya menggambat grafik Rect . dimana gambar tersebut sesuai dengan yang di input

oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat Rect.

- Untuk gambar di bawah ini saya menggunakan kordinat ( 50,50,200,200) ;

Output :

Page 31: Project Komputer Grafik

1) Program yang Kedelapan class GambarOrang

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

public class orang extends JApplet {

public static void main(String s[]) {

JFrame frame = new JFrame();

frame.setTitle(" Gambar Orang ");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new orang();

applet.init();

frame.getContentPane().add(applet);

frame.pack();

frame.setVisible(true); }

public void init() {

JPanel panel = new AreaPanel2();

getContentPane().add(panel); } }

class AreaPanel2 extends JPanel {

public AreaPanel2() {

setPreferredSize(new Dimension(760, 400)); }

public void paintComponent(Graphics g) {

java.awt.Graphics2D g2 = (java.awt.Graphics2D)g;

Page 32: Project Komputer Grafik

g2.drawOval(120, 60, 90, 90);//kepala

g2.setColor(Color.black);

g2.fillOval(140,90, 10, 10);

g.drawOval(140, 90, 10, 10);//mata kiri

g2.setColor(Color.black);

g2.fillOval(180,90, 10, 10);

g.drawOval(180, 90, 10, 10);//mata kanan

g2.draw(new Arc2D.Double(135, 80, 60, 60, 180, 180, Arc2D.OPEN));//mulut

g2.setColor(Color.BLACK);

g2.drawLine(60, 250, 90, 250);//tangan kiri

g2.drawLine(260, 250, 230, 250);//tangan kanan

g2.drawArc(60, 150, 200, 200, 0, 180);

g2.draw(new Arc2D.Double(72, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.draw(new Arc2D.Double(178, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(124,250,124,350);

g2.drawLine(196,250,196,350);

g2.draw(new Arc2D.Double(125, 300, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(178, 350, 195, 350);

g2.drawLine(143, 350, 123, 350); //tulisan

g2.setFont(new Font("Arial", Font.PLAIN, 21));

g2.setColor(Color.BLACK);

g2.drawString("Nama : Syahroni", 20, 20);

g2.drawString("NPM : 2012 4350 1228", 20, 40);

g2.drawString("Dosen : NAHOT FRASTIAN M.KOM", 20, 60);

//translate & scacle

g2.scale(0.5, 0.5);

g2.translate(450,350);

g2.setColor(Color.gray);

g2.setColor(Color.black);

g2.fillOval(140,90, 10, 10);

g2.fillOval(180,90, 10, 10);

g.drawOval(120, 60, 90, 90);//kepala

g.drawOval(140, 90, 10, 10);//mata kiri

Page 33: Project Komputer Grafik

g.drawOval(180, 90, 10, 10);//mata kanan

g2.draw(new Arc2D.Double(135, 80, 60, 60, 180, 180, Arc2D.OPEN));//mulut

g2.drawLine(60, 250, 90, 250);//tangan kiri

g2.drawLine(260, 250, 230, 250);//tangan kanan

g2.drawArc(60, 150, 200, 200, 0, 180);

g2.draw(new Arc2D.Double(72, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.draw(new Arc2D.Double(178, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(124,250,124,350);

g2.drawLine(196,250,196,350);

g2.draw(new Arc2D.Double(125, 300, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(178, 350, 195, 350);

g2.drawLine(143, 350, 123, 350); }

}

Page 34: Project Komputer Grafik

Proses :

- Saya menggambat grafik 2 orang.

- Saya menggunakan grafik arc ,rect, oval, dan line.

Page 35: Project Komputer Grafik

Output :

9.Program yang Kesembilan class tank

Source :

import java.awt.Graphics ;

import java.awt.Color ;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

public class tank extends JApplet {

public static void main(String s[]) {

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new tank();

applet.init();

frame.getContentPane().add(applet);

frame.pack();

Page 36: Project Komputer Grafik

frame.setVisible(true); }

public void init() {

JPanel panel = new AreaPanel();

getContentPane().add(panel); } }

class AreaPanel extends JPanel {

public AreaPanel() {

setPreferredSize(new Dimension(500, 480)); }

public void paintComponent(Graphics g) {

Graphics2D g2=(Graphics2D)g;

Graphics2D g3=(Graphics2D)g;

g.drawRoundRect(200,300,500,100,90,90);

g.setColor(Color.GREEN);

g.fillRoundRect(200,300,480,100,90,90);

g2.setColor(Color.BLACK);

for (int i=0;i<=300;i=i+75){

g.fillOval(350+i,325,50,50); }

Polygon panah = new Polygon();

panah.addPoint(250,300);

panah.addPoint(270,250);

panah.addPoint(320,250);

panah.addPoint(320,220);

panah.addPoint(340,220);

panah.addPoint(340,120);

panah.addPoint(310,100);

panah.addPoint(340,80);

panah.addPoint(350,80);

panah.addPoint(350,220);

panah.addPoint(390,220);

panah.addPoint(390,250);

panah.addPoint(430,250);

panah.addPoint(440,270);

panah.addPoint(740,270);

panah.addPoint(740,290);

panah.addPoint(470,290);

Page 37: Project Komputer Grafik

panah.addPoint(470,300);

g2.draw(panah);

g2.fill(panah); }} }

Page 38: Project Komputer Grafik

Proses :

- Saya menggambat grafik tank

- Saya menggunakan grafik Roundrect, Dengan fillRoundRect dan graphics 2d

- Dan saya memberikan warna hitam dan hijau

- Dalam gambar ini saya menggunakan pengulangan for. for (int i=0;i<=300;i=i+75).

Dimana nilai i awal itu adalah 0 , dan setiap pengulangan akan di tambahkan dengan

nilai 75.

Page 39: Project Komputer Grafik

Output :

11. Program yang Kesembilan class empatJam

Source :

import java.applet.*;

import java.awt.*;

import java.util.*;

import java.text.*;

import javax.swing.*;

public class empatJam extends Applet implements Runnable

{ int width, height;

Thread t = null;

boolean threadSuspended;

int jam=0, menit=0, detik=0;

String strWaktu = "";

public void init() {

width = getSize().width;

height = getSize().height;

Page 40: Project Komputer Grafik

setBackground(Color.black); }

public void start()

{

if(t == null)

{

t = new Thread(this);

t.setPriority(Thread.MIN_PRIORITY);

threadSuspended = false;

t.start();

}

else

{

if(threadSuspended)

{

threadSuspended=false;

synchronized(this)

{

notify();

}

}

}

}

public void stop()

{

threadSuspended = true;

}

public void run()

{

try

{

while(true)

{

Calendar cal = Calendar.getInstance();

Page 41: Project Komputer Grafik

jam = cal.get(Calendar.HOUR_OF_DAY);

if(jam > 12) jam -= 12;

menit = cal.get(Calendar.MINUTE);

detik = cal.get(Calendar.SECOND);

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss",

Locale.getDefault());

Date tgl = cal.getTime();

strWaktu = sdf.format(tgl);

if(threadSuspended)

{

synchronized(this)

{

while(threadSuspended)

{

wait();

}

}

}

repaint();

t.sleep(1000);

}

}

catch(InterruptedException e)

{

}

}

void drawHand(int posX, int posY, double angle, int radius, Graphics g)

{

angle -= 0.5 * Math.PI;

int x = (int) (radius*Math.cos(angle));

int y = (int) (radius*Math.sin(angle));

g.drawLine(posX, posY, posX+x, posY+ y);

}

void drawWedge(int posX, int posY, double angle, int radius, Graphics g)

Page 42: Project Komputer Grafik

{

angle -= 0.5 * Math.PI;

int x = (int) (radius*Math.cos(angle));

int y = (int) (radius*Math.sin(angle));

angle += 2*Math.PI/3;

int x2 = (int) (5*Math.cos(angle));

int y2 = (int) (5*Math.sin(angle));

angle += 2*Math.PI/3;

int x3 = (int) (5*Math.cos(angle));

int y3 = (int) (5*Math.sin(angle));

g.drawLine(posX+ x2, posY+ y2, posX+ x, posY + y);

g.drawLine(posX+ x3, posY + y3, posX+ x, posY + y);

g.drawLine(posX+ x2,posY + y2, posX+ x3, posY + y3);

}

void drawRoundedNum(int posX, int posY, int radius, Graphics g)

{ for(int i=0;i<12;i++)

{

int x = (int) (0.8*radius*Math.cos(i*Math.PI/6-0.5*Math.PI));

int y = (int) (0.8*radius*Math.sin(i*Math.PI/6-0.5*Math.PI));

String j = Integer.toString(i);

if(i==0) j="12";

for(int k=0;k<width;k+=width/4)

if(k%2==0) g.drawString(j, x+posX, y+posY);

}

}

public void paint(Graphics g)

{

g.setColor(Color.white);

int z=0;

for(int i=0;i<width;i+=width/4)

if(i%2==1)

{

drawWedge(i,height/4,2*Math.PI * (jam-z) / 12, width/12, g);

Page 43: Project Komputer Grafik

drawWedge(i,height/4,2*Math.PI * (menit) / 60, width/8, g);

drawWedge(i,height-height/4,2*Math.PI * (jam-z-5) / 12, width/12, g);

drawWedge(i,height-height/4,2*Math.PI * (menit) / 60, width/8, g);

drawHand(i,height/4,2*Math.PI * (detik) / 60, width/8, g);

drawHand(i,height-height/4,2*Math.PI * (detik) / 60, width/8, g);

drawRoundedNum(i,height/4, width/4, g);

drawRoundedNum(i,height-height/4, width/4, g);

z+=7;

}

g.setColor(Color.white);

//g.drawString(strWaktu, 10, height-10);

}

}

Page 44: Project Komputer Grafik
Page 45: Project Komputer Grafik
Page 46: Project Komputer Grafik

Proses :

- Saya menggambat grafik empat jam.

- Untuk Background saya menggunakan warna hitam yang di tandai dengan

setBackground(Color.black);

- Saya juga menggunakan 7 method dalam class ini yang mempunyai fungsi masing-

masing. Seperti method init yang berfungsi untuk mengatur size dan background , lalu

method start yang berfungsi untuk menjalankan jarum jam,lalu ada method stop yang

berhentikan jarum jam , lalu ada method run yang berfungsi mengambil jam detik dan

menit dari komputer kita , lalu ada drawHand , drawWedge, drawRoundedNum yang

masing” berfungsi untuk menggambarkan grafik 4 jam tersebut.

Output :

12. Program yang Kedua belas class GrafikGempa

Source :

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class TampilanGrafikGempa extends Canvas

{

private int jarakTitik;

private int titikTengah;

Page 47: Project Komputer Grafik

private int jumlahTitik;

private int[] titik;

public TampilanGrafikGempa (int jumlahTitik)

{

this.jumlahTitik = jumlahTitik;

titik = new int[jumlahTitik];

for (int i=0; i<jumlahTitik; i++)

titik[i] = (int)(Math.random()*41-20);

setBackground(Color.white);

}

@Override

public void paint (Graphics g)

{

jarakTitik = getWidth()/jumlahTitik + 1;

titikTengah = getHeight()/2;

g.setColor(Color.red);

g.drawLine(0, titikTengah, getWidth(), titikTengah);

g.setColor(Color.blue);

for (int i=1; i<jumlahTitik; i++)

{

g.drawLine((i-1)*jarakTitik, titikTengah+titik[i-1], i*jarakTitik,

titikTengah+titik[i]);

titik[i-1] = titik[i];

}

titik[jumlahTitik-1] = (int) (Math.random()*250-150);

}

}

class ProsesGrafik extends Thread

{

private TampilanGrafikGempa gambar;

public ProsesGrafik (TampilanGrafikGempa gambar)

Page 48: Project Komputer Grafik

{

this.gambar = gambar;

}

@Override

public void run()

{

while (true)

{

gambar.repaint();

try

{

Thread.sleep(100);

}

catch (Exception e)

{

}

}

}

}

public class GrafikGempa extends JFrame implements ActionListener

{

private TampilanGrafikGempa gambar = new TampilanGrafikGempa(65);

private ProsesGrafik proses = new ProsesGrafik(gambar);

private Button selesai = new Button("Selesai");

public GrafikGempa()

{

super ("Simulasi Grafik Gempa");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize (500,500);

setLocation(100, 100);

selesai.addActionListener(this);

Page 49: Project Komputer Grafik

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

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

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

show();

proses.run();

setVisible(true);

}

public static void main (String[] args)

{

new GrafikGempa();

}

public void actionPerformed(ActionEvent e) {

try{

if (e.getSource()== selesai ) {

proses.run();

}

} catch(Exception ex ) {

System.err.println("error"+ex.getMessage());

}

}

}

Page 50: Project Komputer Grafik

Proses :

- Saya menggambar grafikGempa .

Page 51: Project Komputer Grafik

- Untuk background saya menggunakan background warna putih, untuk garis tengah

nya saya menggunakan warna merah dan untuk line grafik berjalannya saya

menggunakan warna biru.

- Untuk komponen yang terdapat dalam program ini adalah drawLine dan Button.

Output :

13. Program yang Ketigabelas class ImageZoomer

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ImageZoomer extends JApplet implements ActionListener

{

//static variables

public static final double DEFAULT_ZOOM_PERCENTAGE = 10.00;

public static final String ZOOM_CURSOR = "zoom_cursor.gif";

Page 52: Project Komputer Grafik

//public variables

private String images[] = {""merrycristmas.jpg",

"ayodance.jpg",

"a7x1.jpg",

"bg.jpg",

"kucing.jpg"};

private JButton m_launch;

private JList m_imageList;

private JTextField m_zoomPercentage;

public void init()

{

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

m_imageList = new JList(images);

m_imageList.setSelectedIndex(0);

m_launch = new JButton("Launch Image Zoomer");

m_launch.addActionListener(this);

Panel input = new Panel(new FlowLayout());

input.add(m_launch);

Panel input1 = new Panel(new FlowLayout());

input1.add(new Label("Enter zoom percentage: "));

m_zoomPercentage = new JTextField(5);

m_zoomPercentage.setText("10");

input1.add(m_zoomPercentage);

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

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

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

}

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource().equals(m_launch))

{

//getting the image

Page 53: Project Komputer Grafik

String imageName = ((String)(m_imageList.getSelectedValue())).trim();

Image image = getImage(getCodeBase(), imageName);

Image zoomcursorImage = getImage(getCodeBase(), ZOOM_CURSOR);

MediaTracker mt = new MediaTracker(this);

mt.addImage(image, 1);

mt.addImage(zoomcursorImage, 2);

try

{

mt.waitForAll();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

double per = DEFAULT_ZOOM_PERCENTAGE;

try

{

per = Double.valueOf(m_zoomPercentage.getText().trim()).intValue();

}

catch(NumberFormatException numExp)

{

}

//create the Image Zoomer frame

ImageZoomerFrame imageZoomer = new ImageZoomerFrame(image, per,

imageName);

//set the zoom cursor image

imageZoomer.setZoomCursorImage(zoomcursorImage);

}

}

}

Page 54: Project Komputer Grafik

Proses :

- Dalam class program ini saya memasukkan beberapa komponent seperti Jlist , jButton

dan jTextField.

- Serta saya membuat array String untuk menampung nama gambar yang telah di

simpan.

- Pada program ini user di persilahkan untuk memilih gambar mana yang akan di

perbesar dengan kelipatan 10 atau nilai bisa di input sendiri oleh user sesuai

keinginan.

- Setelah itu gambar yang telah di pilih oleh user akan di tampilkan di frame baru.

Output :

Page 55: Project Komputer Grafik

14. Program yang Keempatbelas class ImageZoomerFrame

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ImageZoomerFrame extends JFrame

implements MouseListener, ActionListener

{

private ImagePanel m_imagePanel;

private JScrollPane m_srollPane;

private JPanel m_imageContainer;

Page 56: Project Komputer Grafik

private JLabel m_zoomedInfo;

private JButton m_zoomInButton;

private JButton m_zoomOutButton;

private JButton m_originalButton;

private Cursor m_zoomCursor; public ImageZoomerFrame(Image image, double

zoomPercentage, String imageName)

{

super("Image Zoomer [" + imageName + "]");

if(image == null)

{

add(new JLabel("Image " + imageName + " not Found"));

}

else

{

JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));

m_zoomInButton = new JButton("Zoom In");

m_zoomInButton.addActionListener(this);

m_zoomOutButton = new JButton("Zoom Out");

m_zoomOutButton.addActionListener(this);

m_originalButton = new JButton("Original");

m_originalButton.addActionListener(this);

m_zoomedInfo = new JLabel("Zoomed to 100%");

topPanel.add(new JLabel("Zoom Percentage is " +

(int)zoomPercentage + "%"));

topPanel.add(m_zoomInButton);

topPanel.add(m_originalButton);

topPanel.add(m_zoomOutButton);

topPanel.add(m_zoomedInfo);

m_imagePanel = new ImagePanel(image, zoomPercentage);

m_imagePanel.addMouseListener(this);

m_imageContainer = new JPanel(new FlowLayout(FlowLayout.CENTER));

m_imageContainer.setBackground(Color.BLACK);

m_imageContainer.add(m_imagePanel);

Page 57: Project Komputer Grafik

m_srollPane = new JScrollPane(m_imageContainer);

m_srollPane.setAutoscrolls(true);

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

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

getContentPane().add(BorderLayout.SOUTH,

new JLabel("Left Click to Zoom In," +

" Right Click to Zoom Out", JLabel.CENTER));

m_imagePanel.repaint();

}

pack();

setVisible(true);

}

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource().equals(m_zoomInButton))

{

m_imagePanel.zoomIn();

adjustLayout();

}

else if(ae.getSource().equals(m_zoomOutButton))

{

m_imagePanel.zoomOut();

adjustLayout();

}

else if(ae.getSource().equals(m_originalButton))

{

m_imagePanel.originalSize();

adjustLayout();

}

} public void setZoomCursorImage(Image zoomcursorImage)

{

m_zoomCursor = Toolkit.getDefaultToolkit().createCustomCursor(

zoomcursorImage, new Point(0, 0), "ZoomCursor");

Page 58: Project Komputer Grafik

} private void adjustLayout()

{

m_imageContainer.doLayout();

m_srollPane.doLayout(); m_zoomedInfo.setText("Zoomed to " +

(int)m_imagePanel.getZoomedTo() + "%");

}

public void mouseClicked(MouseEvent e)

{

if(e.getButton() == MouseEvent.BUTTON1)

{

m_imagePanel.zoomIn();

}

else if(e.getButton() == MouseEvent.BUTTON3)

{

m_imagePanel.zoomOut();

} adjustLayout();

}

public void mouseEntered(MouseEvent e)

{

m_imageContainer.setCursor(m_zoomCursor);

}

public void mouseExited(MouseEvent e)

{

m_imageContainer.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

public void mousePressed(MouseEvent e)

public void mouseReleased(MouseEvent e)

public class ImagePanel extends JPanel

{

private double m_zoom = 1.0;

private double m_zoomPercentage;

private Image m_image;

public ImagePanel(Image image, double zoomPercentage)

Page 59: Project Komputer Grafik

{

m_image = image;

m_zoomPercentage = zoomPercentage / 100;

}

public void paintComponent(Graphics grp)

{

Graphics2D g2D = (Graphics2D)grp;

//set the background color to white

g2D.setColor(Color.WHITE);

//fill the rect

g2D.fillRect(0, 0, getWidth(), getHeight());

//scale the graphics to get the zoom effect

g2D.scale(m_zoom, m_zoom);

//draw the image

g2D.drawImage(m_image, 0, 0, this);

}

public Dimension getPreferredSize()

{

return new Dimension((int)(m_image.getWidth(this) +

(m_image.getWidth(this) * (m_zoom - 1))),

(int)(m_image.getHeight(this) +

(m_image.getHeight(this) * (m_zoom -1 ))));

}

public void setZoomPercentage(int zoomPercentage)

{

m_zoomPercentage = ((double)zoomPercentage) / 100;

}

public void originalSize()

{

m_zoom = 1;

}

public void zoomIn()

{

m_zoom += m_zoomPercentage;

Page 60: Project Komputer Grafik

}

//Proses pengecilan image

public void zoomOut()

{

m_zoom -= m_zoomPercentage;

if(m_zoom < m_zoomPercentage)

{

if(m_zoomPercentage > 1.0)

{

m_zoom = 1.0;

}

else

{

zoomIn();

}

}

}

public double getZoomedTo()

{

return m_zoom * 100;

}

}

}

Page 61: Project Komputer Grafik
Page 62: Project Komputer Grafik

Proses :

- Dalam class ini saya menggunakan 6 komponen seperti Jpanel ,

jbutton ,Jlabel ,ScrollPane,imagePanel dan cursor .

- Dalam class program ini adalah sambungan class dari imagezoom yang sebelumnya .

dimana dalam class ini hanya menampilkan gambar yang telah di pilih oleh user

dalam class imagezoom.

Output :

Page 63: Project Komputer Grafik

15. Program yang kelimabelas Kelas About

Source :

import javax.swing.*;

import java.awt.event.*;

import java.sql.*;

import javax.swing.table.*;

import java.awt.*;

import javax.swing.border.EmptyBorder;

Page 64: Project Komputer Grafik

public class about extends JFrame {

JPanel panel = new JPanel ();

JLabel lblWall = new JLabel("");

JLabel judul = new JLabel(" Dosen : Nahot Frastian ,M.Kom "); JLabel foto = new

JLabel(""); JLabel nama = new JLabel(" Nama : Hamim Suyuti ");

JLabel npm = new JLabel(" Npm : 2012 4350 1163 "); JLabel telp = new JLabel(" Phone :

0857 7300 0035 "); JLabel kelas = new JLabel(" Kelas : R7H ");

JLabel jurusan = new JLabel(" Fakultas Teknik Informatika "); JLabel makul = new

JLabel(" Mata Kuliah : Komputer Grafik ");JLabel dosen= new JLabel(" Dosen : Nahot

Frastian, M.KOM ");

public about(){

super (" Creative By Hamim Suyuti "); setSize (610,340); panel.setBorder(new

EmptyBorder(5, 5, 5, 5)); setContentPane(panel); setLocation (395,220);

panel.setLayout(null); judul.setBounds (30,25,600,40); foto.setBounds

(100,100,150,190); foto.setIcon(new ImageIcon(about.class.getResource("admin.png")));

nama.setBounds (270,105,180,30);npm.setBounds (270,130,180,30);telp.setBounds

(270,205,180,30);kelas.setBounds (270,155,180,30);

jurusan.setBounds (270,180,180,30); makul.setBounds (270,230,180,30);

dosen.setBounds (270,255,180,30);

panel.add(judul); judul.setFont(new Font("Algerian", Font.BOLD, 30)); panel.add(foto);

panel.add(nama); panel.add(npm); panel.add(telp);

panel.add(kelas); panel.add(jurusan); panel.add(makul); panel.add(dosen);

lblWall.setIcon(new ImageIcon(about.class.getResource("bg.jpg")));

lblWall.setBounds(0, 0, 810, 500);panel.add(lblWall);

judul.setForeground ( Color.white ); nama.setForeground

( Color.white );npm.setForeground ( Color.white ); telp.setForeground ( Color.white );

kelas.setForeground ( Color.white ); jurusan.setForeground ( Color.white );

makul.setForeground ( Color.white );dosen.setForeground ( Color.white );

Page 65: Project Komputer Grafik

setVisible(true);

}

}

Proses :

- Saya Menggunakan import java.awt.* dan import javax.swing.* dalam kelas ini.

- Dalam class ini saya menggunkan 2 komponen yaitu Panel dan Label.

- Dimana panel ini berfungsi untuk menampung setiap komponen yang saya buat ,

sedangkan untuk masing text yang tampil saya menggunakan label.

Output :

Page 66: Project Komputer Grafik