Project Komputer Grafik
-
Upload
hamimsuyuti -
Category
Education
-
view
436 -
download
1
Transcript of Project Komputer Grafik
![Page 1: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/4.jpg)
Ini tampilan dari Menu utama
2. Program yang Kedua class menu
Source :
import java.awt.*;
import java.awt.event.*;
![Page 5: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/11.jpg)
Proses :
![Page 12: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/12.jpg)
- 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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/17.jpg)
}
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/20.jpg)
}catch(Exception e) {System.err.println("error"+e.getMessage());}
}
}
![Page 21: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/22.jpg)
- Output untuk Oval
- Output untuk Arc
![Page 23: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/26.jpg)
}
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/34.jpg)
Proses :
- Saya menggambat grafik 2 orang.
- Saya menggunakan grafik arc ,rect, oval, dan line.
![Page 35: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/37.jpg)
panah.addPoint(470,300);
g2.draw(panah);
g2.fill(panah); }} }
![Page 38: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/42.jpg)
{
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/43.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/44.jpg)
![Page 45: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/45.jpg)
![Page 46: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/46.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/47.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/48.jpg)
{
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/49.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/50.jpg)
Proses :
- Saya menggambar grafikGempa .
![Page 51: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/51.jpg)
- 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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/52.jpg)
//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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/53.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/54.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/55.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/56.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/57.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/58.jpg)
} 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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/59.jpg)
{
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/60.jpg)
}
//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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/61.jpg)
![Page 62: Project Komputer Grafik](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/62.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/63.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/64.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/65.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061516/58833f651a28abbe6b8b4707/html5/thumbnails/66.jpg)