SlideShare ist ein Scribd-Unternehmen logo
1 von 65
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
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(); } }
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
Ini tampilan dari Menu utama
2. Program yang Kedua class menu
Source :
import java.awt.*;
import java.awt.event.*;
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);
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);
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);
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);
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) {
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());
}
}
Proses :
- 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;
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));
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);
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 ;
}
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 ;
}
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 ;
}
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("");
}
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);
}
}
}catch(Exception e) {System.err.println("error"+e.getMessage());}
}
}
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
- Output untuk Oval
- Output untuk Arc
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 ) ;
}
}
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 :
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 ) ;
}
}
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 ) ;
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 ) ;
}
}
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 :
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 ) ; } }
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 :
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;
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
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); }
}
Proses :
- Saya menggambat grafik 2 orang.
- Saya menggunakan grafik arc ,rect, oval, dan line.
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();
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);
panah.addPoint(470,300);
g2.draw(panah);
g2.fill(panah); }} }
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.
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;
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();
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)
{
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);
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);
}
}
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;
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)
{
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);
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());
}
}
}
Proses :
- Saya menggambar grafikGempa .
- 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";
//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
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);
}
}
}
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 :
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;
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);
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");
} 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)
{
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;
}
//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;
}
}
}
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 :
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;
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 );
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 :
Project Komputer Grafik

Weitere ähnliche Inhalte

Was ist angesagt?

Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Nerossi Jonathan
 
Distribusi Seragam, Bernoulli, dan Binomial
Distribusi Seragam, Bernoulli, dan BinomialDistribusi Seragam, Bernoulli, dan Binomial
Distribusi Seragam, Bernoulli, dan BinomialSilvia_Al
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayesdedidarwis
 
PPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIALPPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIALHastih Leo
 
Pertemuan 6 tabview
Pertemuan 6 tabviewPertemuan 6 tabview
Pertemuan 6 tabviewheriakj
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Sukma Puspitorini
 
Pertemuan 02 teori dasar himpunan
Pertemuan 02   teori dasar himpunanPertemuan 02   teori dasar himpunan
Pertemuan 02 teori dasar himpunanFajar Istiqomah
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Windownadiapreviani
 
Algoritma dan Struktur Data - Sequential Search
Algoritma dan Struktur Data - Sequential SearchAlgoritma dan Struktur Data - Sequential Search
Algoritma dan Struktur Data - Sequential SearchKuliahKita
 
metode-pengujian-blackbox
 metode-pengujian-blackbox metode-pengujian-blackbox
metode-pengujian-blackboxIwan Kurniarasa
 
Contoh soal dan penyelesaian metode biseksi
Contoh soal dan penyelesaian metode biseksiContoh soal dan penyelesaian metode biseksi
Contoh soal dan penyelesaian metode biseksimuhamadaulia3
 
Distribusi Peluang Binomial
Distribusi Peluang BinomialDistribusi Peluang Binomial
Distribusi Peluang BinomialMuhammad Arif
 

Was ist angesagt? (20)

Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)Metode numerik pertemuan 7 (interpolasi lagrange)
Metode numerik pertemuan 7 (interpolasi lagrange)
 
Distribusi Seragam, Bernoulli, dan Binomial
Distribusi Seragam, Bernoulli, dan BinomialDistribusi Seragam, Bernoulli, dan Binomial
Distribusi Seragam, Bernoulli, dan Binomial
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayes
 
PPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIALPPT INTERPOLASI POLINOMIAL
PPT INTERPOLASI POLINOMIAL
 
Pertemuan 6 tabview
Pertemuan 6 tabviewPertemuan 6 tabview
Pertemuan 6 tabview
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019
 
Elemen simulasi
Elemen simulasiElemen simulasi
Elemen simulasi
 
8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
 
Turunan numerik
Turunan numerikTurunan numerik
Turunan numerik
 
Pertemuan 02 teori dasar himpunan
Pertemuan 02   teori dasar himpunanPertemuan 02   teori dasar himpunan
Pertemuan 02 teori dasar himpunan
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Laporan akhir-pkm-kc
Laporan akhir-pkm-kcLaporan akhir-pkm-kc
Laporan akhir-pkm-kc
 
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Window
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Algoritma dan Struktur Data - Sequential Search
Algoritma dan Struktur Data - Sequential SearchAlgoritma dan Struktur Data - Sequential Search
Algoritma dan Struktur Data - Sequential Search
 
Soal dan pembahasan integral permukaan
Soal dan pembahasan integral permukaanSoal dan pembahasan integral permukaan
Soal dan pembahasan integral permukaan
 
metode-pengujian-blackbox
 metode-pengujian-blackbox metode-pengujian-blackbox
metode-pengujian-blackbox
 
Contoh soal dan penyelesaian metode biseksi
Contoh soal dan penyelesaian metode biseksiContoh soal dan penyelesaian metode biseksi
Contoh soal dan penyelesaian metode biseksi
 
Distribusi Peluang Binomial
Distribusi Peluang BinomialDistribusi Peluang Binomial
Distribusi Peluang Binomial
 
contoh soal program linear
contoh soal program linearcontoh soal program linear
contoh soal program linear
 

Andere mochten auch

PENGENALAN Grafik komputer
PENGENALAN Grafik komputerPENGENALAN Grafik komputer
PENGENALAN Grafik komputerRuudz Dy
 
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...Alina Vilk
 
Alexander Pavlenko, Java Software Engineer, DataArt.
Alexander Pavlenko, Java Software Engineer, DataArt.Alexander Pavlenko, Java Software Engineer, DataArt.
Alexander Pavlenko, Java Software Engineer, DataArt.Alina Vilk
 
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...Alina Vilk
 
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...Alina Vilk
 
Gaffney to depart NAA - AOPA Magazine
Gaffney to depart NAA - AOPA MagazineGaffney to depart NAA - AOPA Magazine
Gaffney to depart NAA - AOPA MagazineJonathan Gaffney
 
Ensayo metalográfico
Ensayo metalográficoEnsayo metalográfico
Ensayo metalográficodgomezruiz96
 

Andere mochten auch (20)

PENGENALAN Grafik komputer
PENGENALAN Grafik komputerPENGENALAN Grafik komputer
PENGENALAN Grafik komputer
 
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
 
English sena
English senaEnglish sena
English sena
 
Autologue Design(3)
Autologue Design(3)Autologue Design(3)
Autologue Design(3)
 
Alexander Pavlenko, Java Software Engineer, DataArt.
Alexander Pavlenko, Java Software Engineer, DataArt.Alexander Pavlenko, Java Software Engineer, DataArt.
Alexander Pavlenko, Java Software Engineer, DataArt.
 
Pak China Economic Corrido1
Pak China Economic Corrido1Pak China Economic Corrido1
Pak China Economic Corrido1
 
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
 
Presentation version2
Presentation version2Presentation version2
Presentation version2
 
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
 
Projet de formation - MRP
Projet de formation - MRPProjet de formation - MRP
Projet de formation - MRP
 
Anuragh Ravindran
Anuragh RavindranAnuragh Ravindran
Anuragh Ravindran
 
Práctica 1
Práctica 1Práctica 1
Práctica 1
 
FINANCING FOR DEVELOPMENT
FINANCING FOR DEVELOPMENTFINANCING FOR DEVELOPMENT
FINANCING FOR DEVELOPMENT
 
Poster Analysis
Poster AnalysisPoster Analysis
Poster Analysis
 
Gaffney to depart NAA - AOPA Magazine
Gaffney to depart NAA - AOPA MagazineGaffney to depart NAA - AOPA Magazine
Gaffney to depart NAA - AOPA Magazine
 
FINANCING FOR DEVELOPMENT
FINANCING FOR DEVELOPMENTFINANCING FOR DEVELOPMENT
FINANCING FOR DEVELOPMENT
 
CCT
CCTCCT
CCT
 
Ensayo metalográfico
Ensayo metalográficoEnsayo metalográfico
Ensayo metalográfico
 
Canete 2014
Canete 2014Canete 2014
Canete 2014
 
ag_resume13 (2) (1)
ag_resume13 (2) (1)ag_resume13 (2) (1)
ag_resume13 (2) (1)
 

Mehr von HamimSuyuti (20)

Rumah
RumahRumah
Rumah
 
Kuis 2
Kuis 2Kuis 2
Kuis 2
 
Kuis 1 b
Kuis 1 bKuis 1 b
Kuis 1 b
 
Kuis 1
Kuis 1Kuis 1
Kuis 1
 
Makalah Kelompok
Makalah KelompokMakalah Kelompok
Makalah Kelompok
 
Segiempat1
Segiempat1Segiempat1
Segiempat1
 
Segi empat
Segi empatSegi empat
Segi empat
 
Polygonbiasa
PolygonbiasaPolygonbiasa
Polygonbiasa
 
Polygon
PolygonPolygon
Polygon
 
Oval
OvalOval
Oval
 
Myline
MylineMyline
Myline
 
Lamp
LampLamp
Lamp
 
Kotak3 d
Kotak3 dKotak3 d
Kotak3 d
 
Grafik garis
Grafik garisGrafik garis
Grafik garis
 
Grafik batang
Grafik batangGrafik batang
Grafik batang
 
Eliptikal
EliptikalEliptikal
Eliptikal
 
Drawtext
DrawtextDrawtext
Drawtext
 
Bintangwarna
BintangwarnaBintangwarna
Bintangwarna
 
Basis graphics
Basis graphicsBasis graphics
Basis graphics
 
Arc
ArcArc
Arc
 

Project Komputer Grafik

  • 1. 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
  • 2. 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(); } }
  • 3. 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
  • 4. Ini tampilan dari Menu utama 2. Program yang Kedua class menu Source : import java.awt.*; import java.awt.event.*;
  • 5. 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);
  • 6. 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);
  • 7. 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);
  • 8. 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);
  • 9. 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) {
  • 10. 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()); } }
  • 12. - 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;
  • 13. 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));
  • 14. 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);
  • 15. 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 ; }
  • 16. 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 ;
  • 17. } 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 ; }
  • 18. 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(""); }
  • 19. 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); } }
  • 21. 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
  • 22. - Output untuk Oval - Output untuk Arc
  • 23. 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 ) ; } }
  • 24. 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 :
  • 25. 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 ) ; } } Proses :
  • 26. - 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 ) ; 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 ) ; } }
  • 27. 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 :
  • 28. 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 ) ; } }
  • 29. 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 :
  • 30. 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;
  • 31. 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
  • 32. 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); } }
  • 33. Proses : - Saya menggambat grafik 2 orang. - Saya menggunakan grafik arc ,rect, oval, dan line.
  • 34. 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(); frame.setVisible(true); }
  • 35. 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); panah.addPoint(470,300);
  • 37. 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.
  • 38. 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; setBackground(Color.black); }
  • 39. 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(); jam = cal.get(Calendar.HOUR_OF_DAY);
  • 40. 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) {
  • 41. 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); drawWedge(i,height/4,2*Math.PI * (menit) / 60, width/8, g);
  • 42. 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); } }
  • 43.
  • 44.
  • 45. 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;
  • 46. 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)
  • 47. { 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);
  • 48. 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()); } } }
  • 49. Proses : - Saya menggambar grafikGempa .
  • 50. - 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";
  • 51. //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
  • 52. 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); } } }
  • 53. 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 :
  • 54. 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;
  • 55. 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);
  • 56. 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");
  • 57. } 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)
  • 58. { 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;
  • 59. } //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; } } }
  • 60.
  • 61. 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 :
  • 62. 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;
  • 63. 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 );
  • 64. 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 :