SlideShare a Scribd company logo
1 of 25
Download to read offline
Pertemuan 6                                                                   Halaman 1/1




                   Graphics Programming II

Creating User Interface

        Graphical User Interface (GUI) digunakan untuk mempermudah pemakaian
suatu sistem. GUI terdiri dari component-component GUI yang berinteraksi dengan
pemakai. Java menyediakan component-component tersebut, untuk membuat GUI. Di
bab ini akan dijelaskan beberapa component penting dan bagaimana cara kerjanya.

Button
Merupakan component yang memberikan suatu event jika ditekan.

Constructor:
public Button()             membuat Button dengan label kosong
public Button(String s)     membuat Button dengan label yang ditentukan oleh
                            variabel s

Common Used Method:
public String getLabel()         untuk mengambil atau mereset label pada button
public void setLabel(String s)   untuk melakukan set pada label button

Event :
               Event Name                                  Cause
ActionEvent                                 menekan tombol enter

Contoh :
Pada MyFrameWithExitHandling.java
import java.awt.*;
import java.awt.event.*;

class MyFrameWithExitHandling extends Frame implements
WindowListener {

     public MyFrameWithExitHandling () {
        addWindowListener(this);
     }

     public void windowActivated(WindowEvent e) {}
     public void windowDeactivated(WindowEvent e) {}
     public void windowOpened(WindowEvent e) {}
     public void windowClosed(WindowEvent e) {}
     public void windowClosing(WindowEvent e) {
       dispose();
       System.exit(0);
     }
     public void windowIconified(WindowEvent e) {}
     public void windowDeiconified(WindowEvent e) {}

}
Bahasa Pemrograman I                                               Graphics Programming II
Pertemuan 6                                                     Halaman 2/2




Pada ButtonTest.java

import java.awt.*;
import java.awt.event.*;

class ButtonTest extends MyFrameWithExitHandling
implements ActionListener
{
   Button btnOne = null;
   Button btnTwo = null;
   String message = "";

    ButtonTest () {
      setLayout(new FlowLayout());
      btnOne = new Button("1");
      btnTwo = new Button("2");
      btnOne.addActionListener(this);
      btnTwo.addActionListener(this);
      add(btnOne);
      add(btnTwo);
    }

    public static void main(String [] args) {
      ButtonTest f = new ButtonTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
      String ActionCommand = e.getActionCommand();
      if(e.getSource() instanceof Button)
         if(ActionCommand.equals("1"))
             {
             message = "Button 1 pressed";
             repaint();
             }
         else if(ActionCommand.equals("2"))
             {
             message = "Button 2 pressed";
             repaint();
             }

    }

    public void paint(Graphics g) {
      FontMetrics fm = g.getFontMetrics();
      int w = fm.stringWidth(message);
      int h = fm.getAscent();

        int x = (getSize().width-w)/2;
        int y = (getSize().height+h)/2;
        g.drawString(message,x,y);
    }



Bahasa Pemrograman I                                 Graphics Programming II
Pertemuan 6                                                                  Halaman 3/3




Label
Merupakan component yang dapat digunakan sebagai teks string atau memberikan
label kepada component lain.

Constructor:
public Label()                  membuat Label kosong dengan pengaturan rata kiri
public Label(String s)          membuat Label dengan teks variabel s dan rata kiri
public Label(String s, int      membuat Label dengan teks variabel s dengan
alignment)                      pengaturan rata yang dapat diatur (Label.CENTER,
                                Label.LEFT, Label.RIGHT)

Common Used Method:
public String getText()         untuk mengambil atau mereset label pada button
public void setText(String s)   untuk melakukan set pada label button
public getAlignment()           untuk menngambil tipe pengaturan rata
public setAligntment(int        untuk melakukan set pengaturan rata
alignment)

Contoh :
Pada LabelTest.java

import java.awt.*;
import java.awt.event.*;

class LabelTest extends MyFrameWithExitHandling
implements ActionListener
{
   Button btnOne = null;
   Button btnTwo = null;
   Label lblDisplay = null;

    LabelTest () {
      setLayout(new GridLayout(3,1,10,10));
      btnOne = new Button("1");
      btnTwo = new Button("2");
      lblDisplay = new Label();

        btnOne.addActionListener(this);
        btnTwo.addActionListener(this);
        add(btnOne);
        add(btnTwo);
        add(lblDisplay);
    }

    public static void main(String [] args) {
      LabelTest f = new LabelTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
      String ActionCommand = e.getActionCommand();
Bahasa Pemrograman I                                              Graphics Programming II
Pertemuan 6                                                                        Halaman 4/4




        if(e.getSource() instanceof Button)
           if(ActionCommand.equals("1"))
               lblDisplay.setText("Button 1 pressed");
           else if(ActionCommand.equals("2"))
               lblDisplay.setText("Button 2 pressed");
    }

TextField
Merupakan component yang digunakan untuk menerima masukan satu baris karakter
dari pemakai.

Constructor:
public TextField(int width)      membuat TextField kosong dengan panjang kolom
                                 ditentukan
public TextField(String s)       membuat TextField dengan menampilkan String s
public TextField(String s, int   membuat TextField dengan menampilkan String s dan
width)                           panjang kolom yang ditentukan

Common Used Method:
public String getText()          untuk mengambil nilai teks pada TextField
public void setText(String s)    untuk melakukan set teks pada TextField
public     setEditable(boolean   untuk mengatur TextField bisa diedit atau tidak bisa
editable)                        diedit (secara default bernilai true)
public void setColumns(int       untuk mengatur panjang kolom dari TextField
width)

Event :
               Event Name                                      Cause
ActionEvent                                 menekan tombol enter
ItemEvent                                   mengganti nilai / isi dari TextField

Contoh :
Pada TextFieldTest.java
import java.awt.*;
import java.awt.event.*;

class TextFieldTest extends MyFrameWithExitHandling
implements ActionListener
{
   Button btnOne = null;
   Label lblDisplay = null;
   TextField txtInput = null;

    TextFieldTest () {
      setLayout(new GridLayout(3,1,10,10));
      txtInput = new TextField();
      btnOne = new Button("Ok");
      lblDisplay = new Label();

       btnOne.addActionListener(this);
       add(txtInput);
Bahasa Pemrograman I                                                  Graphics Programming II
Pertemuan 6                                                                 Halaman 5/5




        add(btnOne);
        add(lblDisplay);

    }

    public static void main(String [] args) {
      TextFieldTest f = new TextFieldTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
      String ActionCommand = e.getActionCommand();
      if(e.getSource() instanceof Button)
         if(ActionCommand.equals("Ok"))
             lblDisplay.setText(txtInput.getText());
    }

}

TextArea
Merupakan component yang digunakan untuk menerima masukan beberapa baris
karakter dari pemakai.

Constructor:
public TextArea(int rows, int   Membuat TextArea dengan baris dan kolom yang
columns)                        ditentukan
public TextArea(String s, int   Membuat TextArea dengan menampilkan String s dan
rows, int columns)              menentukan baris dan kolomnya.
public TextArea(String s, int   Membuat TextArea dengan menampilkan String s
rows, int columns, int          ,menentukan baris dan kolomnya dan mengatur
scrollbars)                     penampilan dari scrollbars
                                tipe dari scrollbars :
                                § SCROLLBARS_BOTH
                                § SCROLLBARS_VERTICAL_ONLY
                                § SCROLLBARS_HORIZONTAL_ONLY
                                § SCROLLBARS_NONE



Common Used Method:
public void insert(String s, int   untuk menambah String s pada TextArea dengan
pos)                               posisi awal pos
public void append(String s)       untuk menambah String s pada TextArea
public void replaceRange(String    untuk mengganti nilai TextArea dengan nilai s
s,int start, int end)              pada posisi awal start dan posisi akhir end
public int getRows()               untuk mengembalikan jumlah baris pada TextArea
public synchronized String         untuk mengambil text pada TextArea
getText()
public synchronized String         untuk mengambil Text yang sedang dipilih pada
Bahasa Pemrograman I                                             Graphics Programming II
Pertemuan 6                                                                Halaman 6/6




getSelectedText()                    TextArea

Contoh :
Pada TextArea.java
import java.awt.*;
import java.awt.event.*;

class TextAreaTest extends MyFrameWithExitHandling
implements ActionListener
{
   Button btnOne = null;
   Label lblDisplay = null;
   TextArea txtInput = null;

    TextAreaTest () {
      setLayout(new GridLayout(3,1,10,10));
      txtInput = new TextArea();
      btnOne = new Button("Ok");
      lblDisplay = new Label();

        btnOne.addActionListener(this);
        add(txtInput);
        add(btnOne);
        add(lblDisplay);

    }

    public static void main(String [] args) {
      TextAreaTest f = new TextAreaTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
      String ActionCommand = e.getActionCommand();
      if(e.getSource() instanceof Button)
         if(ActionCommand.equals("Ok"))
             lblDisplay.setText(txtInput.getText());
    }

}

Choice
Merupakan component yang digunakan menampilkan beberapa pilihan yang dapat di
pilih oleh pemakai.

Constructor:
public Choice()                    membuat Choice object

Common Used Method:
public void add(String s)               menambahkan pilihan s pada Choice
public String getItem(int index)        mengambil item yang pada Choice dengan
                                        posisi index
Bahasa Pemrograman I                                            Graphics Programming II
Pertemuan 6                                                               Halaman 7/7




public int getSelectedIndex()     mengambil posisi index aktif pada Choice
public String getSelectedItem()   mengambil String aktif pada Choice
public void Select(int index)     melakukan set choice dengan pilihan pada
                                  posisi index
public void select(String str)    melakukan set choice dengan pilihan sesusai str

Contoh :
import java.awt.*;
import java.awt.event.*;

class ChoiceTest extends MyFrameWithExitHandling
implements ActionListener
{
   Button btnOne = null;
   Label lblDisplay = null;
   Choice chcInput = null;

    ChoiceTest () {
      setLayout(new GridLayout(3,1,10,10));
      chcInput = new Choice();
      chcInput.addItem("First");
      chcInput.addItem("Second");
      chcInput.addItem("Third");

        btnOne = new Button("Ok");
        lblDisplay = new Label();

        btnOne.addActionListener(this);
        add(chcInput);
        add(btnOne);
        add(lblDisplay);

    }

    public static void main(String [] args) {
      ChoiceTest f = new ChoiceTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
      String ActionCommand = e.getActionCommand();
      if(e.getSource() instanceof Button)
         if(ActionCommand.equals("Ok"))
             lblDisplay.setText(chcInput.getSelectedItem());
    }

}

List
Merupakan component yang digunakan untuk menampilkan beberapa pilihan yang
dapat dipilih oleh user. Perbedaannya dengan Choice adalah List dapat melakukan
single atau multiple selection.

Bahasa Pemrograman I                                           Graphics Programming II
Pertemuan 6                                                                   Halaman 8/8




Constructor:
public List(int rows, boolean membuat List dengan baris row dan set mode
multipleSelection)            multipleSelection
public List(int rows)         Membuat List dengan baris row
public List()                 membuat List

Common Used Method:
public void add(String s)             menambahkan s pada List
public String getItem(int row)        mengambil Item pada baris row
public int getSelectedIndex()         mengambil index yang sedang dipilih
public String getSelectedItem()       mengambil Item yang sedang dipilih
public String [] getSelectedItems()   mengambil beberapa item yang sedang dipilih

Contoh:
Pada ListTest.java
import java.awt.*;
import java.awt.event.*;

class ListTest extends MyFrameWithExitHandling
implements ActionListener
{
   Button btnOne = null;
   Label lblDisplay = null;
   List lstInput = null;

    ListTest () {
      setLayout(new GridLayout(3,1,10,10));
      lstInput = new List();
      lstInput.addItem("First");
      lstInput.addItem("Second");
      lstInput.addItem("Third");
      lstInput.addItem("Fourth");
      lstInput.addItem("Fifth");


        btnOne = new Button("Ok");
        lblDisplay = new Label();

        btnOne.addActionListener(this);
        add(lstInput);
        add(btnOne);
        add(lblDisplay);

    }

    public static void main(String [] args) {
      ListTest f = new ListTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
      String ActionCommand = e.getActionCommand();

Bahasa Pemrograman I                                               Graphics Programming II
Pertemuan 6                                                               Halaman 9/9




        if(e.getSource() instanceof Button)
           if(ActionCommand.equals("Ok"))
               lblDisplay.setText(lstInput.getSelectedItem());
    }

}

CheckBox
Merupakan component yang dapat di pilih oleh pemakai untuk aktif/tidak aktif
(toggle).

Constructor:
public CheckBox(String label)           membuat CheckBox dengan default teks
                                        label
public CheckBox()                       membuat CheckBox tanpa label
public CheckBox(String label, boolean   membuat CheckBox dengan label dan state
state)                                  yang ditentukan

Common Used Method:
public boolean getState()                     mengambil State dari CheckBox
public void setState(boolean state)           melakukan set State dari CheckBox
public setCheckBoxGroup(CheckBoxGroup g)      memasukan CheckBox ke dalam
                                              CheckBoxGroup


Contoh :
Pada CheckBox.java
import java.awt.*;
import java.awt.event.*;

class CheckBoxTest extends MyFrameWithExitHandling
implements ItemListener
{
   String message = "This is CheckBox demo";
   int selection = 0;

    Checkbox chkBold = null;
    Checkbox chkItalic = null;

    CheckBoxTest () {
      setLayout(new FlowLayout());
      chkBold = new Checkbox("Bold");
      chkItalic = new Checkbox("Italic");
      chkBold.addItemListener(this);
      chkItalic.addItemListener(this);

        add(chkBold);
        add(chkItalic);
    }

    public static void main(String [] args) {
      CheckBoxTest f = new CheckBoxTest();

Bahasa Pemrograman I                                           Graphics Programming II
Pertemuan 6                                                           Halaman 10/10




        f.setSize(200,200);
        f.setVisible(true);
    }

    public void itemStateChanged(ItemEvent e) {
      int selection = 0;

        if(chkBold.getState())
          selection+=Font.BOLD;
        if(chkItalic.getState())
          selection+=Font.ITALIC;

        this.selection = selection;
        repaint();

    }

    public void paint(Graphics g) {
      FontMetrics fm = g.getFontMetrics();
      Font fn = new Font("Courier",selection,12);

        g.setFont(fn);
        int w = fm.stringWidth(message);
        int h = fm.getAscent();

        int x = (getSize().width-w)/2;
        int y = (getSize().height+h)/2;
        g.drawString(message,x,y);
    }

}

CheckBoxGroup
Merupakan kumpulan dari CheckBox biasanya disebut radio buttons. Pada
CheckBoxGroup hanya salah satu dari CheckBox saja yang dapat diaktifkan.

Constructor:
public CheckBoxGroup()        membuat CheckBoxGroup

Common Used Method:
public CheckBox                     mengambil CheckBox yang sedang aktif
getSelectedCheckBox()
public synchronized void            melakukan set CheckBox yang akan dipilih
setSelectedCheckBox(CheckBox
box)

Contoh:
import java.awt.*;
import java.awt.event.*;

class CheckBoxGroupTest extends MyFrameWithExitHandling
implements ItemListener
{
    String message = "This is CheckBox demo";
Bahasa Pemrograman I                                 Graphics Programming II
Pertemuan 6                                                    Halaman 11/11




    int selection = 0;

    Checkbox chkBold = null;
    Checkbox chkItalic = null;
    CheckboxGroup cb = null;

    CheckBoxGroupTest () {
      setLayout(new FlowLayout());
      cb = new CheckboxGroup();

        chkBold = new Checkbox("Bold",cb,false);
        chkItalic = new Checkbox("Italic",cb,false);
        chkBold.addItemListener(this);
        chkItalic.addItemListener(this);

        add(chkBold);
        add(chkItalic);
    }

    public static void main(String [] args) {
      CheckBoxGroupTest f = new CheckBoxGroupTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    public void itemStateChanged(ItemEvent e) {
      int selection = 0;

        if(chkBold.getState())
          selection+=Font.BOLD;
        if(chkItalic.getState())
          selection+=Font.ITALIC;

        this.selection = selection;
        repaint();

    }

    public void paint(Graphics g) {
      FontMetrics fm = g.getFontMetrics();
      Font fn = new Font("Courier",selection,12);

        g.setFont(fn);
        int w = fm.stringWidth(message);
        int h = fm.getAscent();

        int x = (getSize().width-w)/2;
        int y = (getSize().height+h)/2;
        g.drawString(message,x,y);
    }

}




Bahasa Pemrograman I                                   Graphics Programming II
Pertemuan 6                                                                Halaman 12/12




Dialog
Merupakan cointaner yang biasanya dipakai sebagai tampilan sementara atau sebagai
tampilan untuk menerima masukan dari pemakai.

Constructor:
public Dialog(Frame parent, String        membuat Dialog dengan judul dan modal
title, boolean modal)                     state yang dapat diset
public Dialog(Frame parent)               membuat Dialog
public Dialog(Frame parent, boolean       membuat Dialog dengan modal state yang
modal)                                    dapat diset
public Dialog(Frame parent, String        membuat Dialog dengan judul yang dapat
title)                                    diset

Common Used Method:
public void setModal(boolean b)      merubah state dari Dialog Modal
public void setTitle(String title)   merubah judul dari Dialog
public show()                        menampilkan Dialog
Contoh:
Pada DialogTest.java
import java.awt.*;
import java.awt.event.*;

class DialogTest extends MyFrameWithExitHandling implements
ActionListener {
   Button x = null;

    DialogTest() {
      setLayout(new FlowLayout());
      x = new Button("open");
      x.addActionListener(this);
      add(x);

    }

    public void actionPerformed(ActionEvent e) {
      if(e.getSource() instanceof Button)
        if(e.getActionCommand().equals("open"))
           {
             MyDialog md = new MyDialog(this,true);
             md.pack();
             md.show();
           }


    }

    public static void main(String [] args) {
      DialogTest f = new DialogTest();
      f.setSize(100,100);
      f.setVisible(true);

    }

Bahasa Pemrograman I                                               Graphics Programming II
Pertemuan 6                                                              Halaman 13/13




    class MyDialog extends Dialog implements WindowListener {
       Label lblDisp = new Label("Hello this is my dialog");

        MyDialog(Frame parent,boolean modal) {
           super(parent,modal);
           addWindowListener(this);
           setLayout(new FlowLayout());
           add(lblDisp);
        }

        public void windowClosing(WindowEvent e) {
           dispose();
        }

        public   void   windowOpened(WindowEvent e) {}
        public   void   windowClosed(WindowEvent e) {}
        public   void   windowActivated(WindowEvent e) {}
        public   void   windowDeactivated(WindowEvent e) {}
        public   void   windowIconified(WindowEvent e) {}
        public   void   windowDeiconified(WindowEvent e){}

    }
}

Menu
Merupakan pilihan yang biasa digunakan pada aplikasi berbasis window .
Menu dibagi menjadi tiga bagian :
1. MenuBar
   Constructor:
    public MenuBar()           membuat MenuBar

    Common Used Method:
     public Menu add(Menu m)             menambahkan Menu pada MenuBar
     public int getMenuCount()           mengambil jumlah Menu pada MenuBar
     public void                         membuang Menu dari MenuBar
     remove(MenuComponent m)
     public Menu getMenu(int i)          mengambil Menu pada urutan ke i

2. Menu
   Constructor:
    public Menu(String label, membuat Menu dengan label dan mode
    boolean tearOff)          tearOff
    public Menu(String label) membuat Menu dengan label
    public Menu()             membuat Menu

    Common Used Method:
     public MenuItem                 menambahkan MenuItem pada Menu
     add(MenuItem mi)
     public void add(String label)
     public void addSeparator()      menambahkan pemisah

Bahasa Pemrograman I                                             Graphics Programming II
Pertemuan 6                                                              Halaman 14/14




        public int getItemCount()     mengambil jumlah MenuItem pada Menu
        public void                   menghapus MenuItem dari Menu
        remove(MenuComponent
        item)
        remove(int index)             menghapus MenuItem melalui index
        removeAll()                   menghapus semua MenuItem

3. MenuItem
   Constructor:
    public MenuItem()                 membuat MenuItem
    MenuItem(String label)            membuat MenuItem dengan label

   Common Used Method:
    public      synchronized        void melakukan set aktif/non aktif       suatu
    setEnabled(boolean b)                MenuItem
    public      synchronized        void merubah label dari MenuItem
    setLabel(
    String label)

Contoh:
Pada MenuTest.java
import java.awt.*;
import java.awt.event.*;

class MenuTest extends MyFrameWithExitHandling implements
ActionListener {
   Button x = null;
   MenuBar mb = null;
   Menu mn = null;
   MenuItem miOpen,miExit;

    MenuTest() {
      setLayout(new FlowLayout());
      x = new Button("open");
      x.addActionListener(this);
      add(x);

        mb = new MenuBar();
        mn = new Menu("File");
        miOpen = new MenuItem("Open");
        miExit = new MenuItem("Exit");
        miOpen.addActionListener(this);
        miExit.addActionListener(this);

        setMenuBar(mb);
        mb.add(mn);
        mn.add(miOpen);
        mn.addSeparator();
        mn.add(miExit);

    }


Bahasa Pemrograman I                                           Graphics Programming II
Pertemuan 6                                                             Halaman 15/15




    public void actionPerformed(ActionEvent e) {
      if(e.getSource() instanceof Button)
        if(e.getActionCommand().equals("open"))
           {
             MyDialog md = new MyDialog(this,true);
             md.pack();
             md.show();
           }

        if(e.getSource() instanceof MenuItem)
           if(e.getActionCommand().equals("Open"))
              {
                MyDialog md = new MyDialog(this,true);
                md.pack();
                md.show();
              }
           else if(e.getActionCommand().equals("Exit"))
              {
              System.exit(0);
              }

    }

    public static void main(String [] args) {
      MenuTest f = new MenuTest();
      f.setSize(100,100);
      f.setVisible(true);

    }

    class MyDialog extends Dialog implements WindowListener {
       Label lblDisp = new Label("Hello this is my dialog");

          MyDialog(Frame parent,boolean modal) {
             super(parent,modal);
             addWindowListener(this);
             setLayout(new FlowLayout());
             add(lblDisp);
          }

          public void windowClosing(WindowEvent e) {
             dispose();
          }

          public   void   windowOpened(WindowEvent e) {}
          public   void   windowClosed(WindowEvent e) {}
          public   void   windowActivated(WindowEvent e) {}
          public   void   windowDeactivated(WindowEvent e) {}
          public   void   windowIconified(WindowEvent e) {}
          public   void   windowDeiconified(WindowEvent e){}

    }
}




Bahasa Pemrograman I                                            Graphics Programming II
Pertemuan 6                                                                  Halaman 16/16




Scrollbar
Merupakan component yang dipergunakan oleh pemakai untuk memilih nilai dengan
range tertentu.

Constructor:
public Scrollbar()               membuat Scrollbar
public Scrollbar(int             membuat Scrollbar dengan mode orientasi ditentukan:
orientation)                     Scrollbar.HORIZONTAL (mendatar)
                                 Scrollbar.VERTICAL (tegak)
public Scrollbar(int             membuat Scrollbar dengan mode orientasi ditentukan,
orientation, int value, int      nilai default value, besar dari bubble, minimum range
visible, int minimum, int        dan maksimum range
maximum)

Common Used Method:
public int getValue()            mengambil harga terakhir dari Scrollbar
public void setMaximum(int       melakukan set range Maksimum
newMaximum)
public void setMinimum(int       melakukan set range Minimum
newMinimum)
public void setOrientation(int   melakukan set mode orientasi
orientation)
setUnitIncrement(int v)          melakukan set besarnya unit pertambahan dari
                                 Scrollbar

Contoh:
Pada ScrollbarTest.java
import java.awt.*;
import java.awt.event.*;

class ScrollbarTest extends MyFrameWithExitHandling implements
AdjustmentListener {
   Scrollbar red,green,blue;
   MyCanvas mc = null;
   int r=0;
   int g=0;
   int b=0;

    ScrollbarTest() {
      setLayout(new GridLayout(1,2));
      Panel p2 = new Panel();
      p2.setLayout(new FlowLayout());
      mc = new MyCanvas();

       red = new Scrollbar(Scrollbar.VERTICAL,0,30,0,255);
       green = new Scrollbar(Scrollbar.VERTICAL,0,30,0,255);
       blue = new Scrollbar(Scrollbar.VERTICAL,0,30,0,255);
       red.addAdjustmentListener(this);
       green.addAdjustmentListener(this);
       blue.addAdjustmentListener(this);
       p2.add(red);
Bahasa Pemrograman I                                                 Graphics Programming II
Pertemuan 6                                                            Halaman 17/17




        p2.add(green);
        p2.add(blue);

        add(mc);
        add(p2);
    }

    public void adjustmentValueChanged(AdjustmentEvent e) {
      if(e.getSource() == red)
        r=red.getValue();
      if(e.getSource() == green)
        g=green.getValue();
      if(e.getSource() == blue)
        b=blue.getValue();
      mc.setMyRGB(r,g,b);

    }

    public static void main(String [] args) {
      ScrollbarTest f = new ScrollbarTest();
      f.setSize(200,200);
      f.setVisible(true);
    }

    class MyCanvas extends Canvas {
       int r=0;
       int g=0;
       int b=0;

         MyCanvas() {

         }
         public void setMyRGB(int r,int g,int b) {
            this.r=r;
            this.g=g;
            this.b=b;
            repaint();
         }

         public void paint(Graphics g) {
            Color c = new Color(this.r,this.g,this.b);
            setBackground(c);
         }

    }
}

Creating Multiple Windows

       Untuk membuat suatu aplikasi dengan menggunakan lebih dari sebuah window
kita dapat membuat instance dari Frame atau Dialog. jika kita menginginkan suatu
masukan dari window kedua sebaiknya kita menggunakan Dialog.

Frame dengan Frame


Bahasa Pemrograman I                                           Graphics Programming II
Pertemuan 6                                                                 Halaman 18/18




Pada Frame dengan Frame kita menggunakan setVisible(true) untuk mengaktifkan
Frame kedua dan setVisible(false) untuk me non-aktifkan Frame kedua.

Frame dengan Dialog
pada Frame dengan Dialog kita menggunakan show() untuk mengaktifkan Dialog dan
dispose() untuk menon-aktifkan Dialog


Applet
Pengertian Applet

        Suatu aplikasi java yang dapat dijalankan melalui web browser. berbeda
dengan aplikasi java biasa, applet harus diturunkan / extends dari java.awt.Applet
class. Applet terdiri dari dua bagian yaitu Applet class sendiri serta HTML (Hypertext
Mark-up Language) yang menjalankan Applet class tersebut.

Struktur Applet

public class MyApplet extends java.applet.Applet {
    public void init() {
    ...
    }

     public void start() {
     ...
     }

     public void stop() {
     ...
     }

     public void destroy() {
     ...
     }
}

Keterangan:
§ init() method
   Method init() dipanggil pada saat Applet pertama kali diload atau dilakukan
   reload. init() dapat di-override jika ingin melakukan suatu inisialisasi.

§   start() method
    Method start() dipanggil setelah init() method dan ketika Applet kembali aktif
    setelah beberapa saat tidak aktif. Contoh seorang pemakai memanggil kembali
    web page yang berisi applet

§   stop() method
    Method stop() dipanggil setelah Applet tidak aktif. contoh seorang pemakai
    meninggalkan web page yang berisi applet. Biasanya method stop() digunakan

Bahasa Pemrograman I                                                Graphics Programming II
Pertemuan 6                                                                Halaman 19/19




    untuk menghentikan sementara thread pada applet agar tidak memakan banyak
    resources.

§   destroy() method
    Method destroy() dipanggil setelah Applet dinyatakan sudah tidak digunakan lagi.
    method destroy() di-override untuk menjalankan suatu operasi sebelum applet
    berhenti. Method ini digunakan untuk membersihkan alokasi resource.


Menjalankan Applet

     Applet harus ditempelkan kedalam HTML dengan menggunakan <applet>
HTML tag. Syntaks dari tag adalah sebagai berikut :

<applet
     code=classfilename.class
     width=applet_viewing_width_in_pixels
     height=applet_viewing_heigh_in_pixels
     [archive=archive_file]
     [codebase=applet_url]
     [vspace=vertical_margin]
     [hspace=horizontal_margin]
     [align=applet_alignment]
     [alt=alternative_text]
>
<param name = param_name1 value=param_value1>
< param name = param_name1 value=param_value2>
...
< param name = param_name1 value=param_valueN>
</applet>

HTML ini kemudian dapat dijalankan pada browser atau dijalankan pada
AppletViewer HTMFile.htm

Keterangan:
§ archive
   Archive digunakan untuk menginstruksikan browser untuk melakukan load
   archive file yang berisi seluruh class file yang digunakan oleh applet.
   untuk membuat archive file dapat digunakan perintah :

jar –cf filename.jar classfile1.class classfile2.class

§   codebase
    Codebase berguna agar applet dapat di-load dari alamat internet yang telah
    ditentukan. Jika codebase tidak disertakan maka applet class harus berada pada
    directory yang sama HTML file.

§   vspace dan hspace
    Digunakan untuk merubah besar batas margin kosong dari applet dalam satuan
    pixel
Bahasa Pemrograman I                                               Graphics Programming II
Pertemuan 6                                                             Halaman 20/20




§   align
    Digunakan untuk menentukan bagaimana suatu applet diatur pada browser. Align
    dapat menggunakan left, right, top, texttop, middle, absmiddle, baseline,
    bottom dan absbottom.

§   alt
    digunakan untuk menampilkan suatu teks apabila applet tidak dapat dijalankan
    pada browser.

Contoh :
Pada MortgageApplet.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class MortgageApplet extends Applet
implements ActionListener
{
  private TextField tfInterestRate;
  private TextField tfYear;
  private TextField tfLoan;
  private TextField tfMonthlyPay;
  private TextField tfTotalPay;
  private Button btCompute;

    public void init() {
      tfInterestRate = new TextField(10);
      tfYear = new TextField(10);
      tfLoan = new TextField(10);
      tfMonthlyPay = new TextField(10);
      tfMonthlyPay.setEditable(false);
      tfTotalPay = new TextField(10);
      tfTotalPay.setEditable(false);
      btCompute = new Button("Compute");

      setBackground(Color.yellow);
      setForeground(Color.red);

      Panel p = new Panel();
      p.setLayout(new GridLayout(5,2));
      p.add(new Label("Interest Rate :"));
      p.add(tfInterestRate);
      p.add(new Label("Years :"));
      p.add(tfYear);
      p.add(new Label("Loan Amount:"));
      p.add(tfLoan);
      p.add(new Label("Monthly Payment :"));
      p.add(tfMonthlyPay);
      p.add(new Label("Total Payment :"));
      p.add(tfTotalPay);

     setLayout(new FlowLayout());
     add(p);
     add(btCompute);
Bahasa Pemrograman I                                            Graphics Programming II
Pertemuan 6                                                      Halaman 21/21




        btCompute.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
      if(e.getSource() instanceof Button)
        if(e.getActionCommand().equals("Compute"));
        {
          double interest =
            (Double.valueOf(tfInterestRate.getText())).doubleValue();
          int year =
            (Integer.valueOf(tfYear.getText())).intValue();
          double loan =
            (Double.valueOf(tfLoan.getText())).doubleValue();
          Mortgage m = new Mortgage(interest,year,loan);
          tfMonthlyPay.setText(String.valueOf(m.monthlyPay()));
          tfTotalPay.setText(String.valueOf(m.totalPay()));
        }
    }

class Mortgage {
    private double interest;
    private int year;
    private double loan;

        Mortgage(double i, int y, double l)
        {
          interest = i/1200.0;
          year = y;
          loan = l;
        }

        public double getInterest() {
          return interest;
        }

        public double getYear() {
          return year;
        }

        public double getLoan() {
          return loan;
        }

        public double monthlyPay() {
          return loan*interest/(1-(Math.pow(1/(1+interest),year*12)));
        }

        public double totalPay() {
          return monthlyPay()*year*12;
        }
    }
}

Pada MyMortgage.htm

<HTMl>
  <HEAD>
Bahasa Pemrograman I                                     Graphics Programming II
Pertemuan 6                                                       Halaman 22/22




  </HEAD>
  <BODY>
     <APPLET
         CODE = "MortgageApplet.class"
         WIDTH = 300
         HEIGHT = 150
      >
      </APPLET>
  </BODY>
</HTML>

Menggunakan parameter pada applet
      Untuk menangkap parameter yang dikirimkan oleh HTML pada applet kita
dapat melakukan pada saat method init(). Caranya adalah dengan menggunakan
method getParameter();

Perhatikan contoh berikut :
Pada DisplayMessage.java
import java.applet.Applet;
import java.awt.*;

public class DisplayMessage extends Applet {
   private String message;
   private int x = 20;
   private int y = 20;

    public void init() {
      message = getParameter(“MESSAGE”);
      x = Integer.parseInt(getParameter(“X”));
      y = Integer.parseInt(getParameter(“Y”));
    }

    public void paint(Graphics g) {
      g.setColor(Color.red);
      g.drawString(message,x,y);
    }
}

Pada Display.htm
<HTMl>
  <HEAD>
  </HEAD>
  <BODY>
     <APPLET
         CODE = "DisplayMessage.class"
         WIDTH = 200
         HEIGHT = 50
       >
       <PARAM NAME = MESSAGE VALUE = “Welcome to Java”>
       <PARAM NAME = X VALUE = 20>
       <PARAM NAME = Y VALUE = 30>
       </APPLET>
  </BODY>
</HTML>

Bahasa Pemrograman I                                      Graphics Programming II
Pertemuan 6                                                               Halaman 23/23




Menjalankan Program sebagai Applet dan sebagai Aplikasi
       Program Applet dapat kita buat agar dapat berjalan sebagai applet ataupun
sebagai aplikasi java.

Cara yang dapat dilakukan adalah :
1. menambah method main() pada Applet
2. buat suatu instance dari Frame
3. buat suatu instance dari Applet
4. tambahkan Applet ke Frame dengan menggunakan method add() dari Frame
5. panggil method init() dan start() dari Applet
6. tampilkan Frame atau setVisible() menjadi true pada Frame

public static void main(String [] args) {
   Frame f = new MyFrameWithExitHandling();
   MortgageApplet mt = new MortgageApplet();
   f.setLayout(new BorderLayout());
   f.add(“Center”,mt);
   f.setSize(300,300);
   mt.init();
   mt.start();
   f.setVisible(true);
}

Tambahkan bagian ini pada MortgageApplet.java dan jalankan dengan java
MortgageApplet.

Keyboard Event
       Keyboard Event merupakan event yang dibuat pada saat suatu keyboard
ditekan. Dengan menggunakan Keyboard Events seorang pemakai dapat
menggunakan tombol keyboard untuk mengontrol dan melakukan suatu action dan
menerima masukan dari keyboard.

untuk memproses suatu keyboard event harus melakukan implements dari interface
KeyListener dengan method :

§   public void keyPressed(KeyEvent e)
    Handler ini dipanggil pada saat tombol ditekan
§   public void keyReleased(KeyEvent e)
    Handler ini dipanggil pada saat tombol dilepaskan
§   public void keyTyped(KeyEvent e)
    Handler ini dipanggil pada saat suatu tombol ditekan dan kemudian dilepaskan
    kembali.

Tombol yang ditangkap oleh event berupa bilangan integer yang merepresentasikan
Unicode Character beserta Alphanumeric Character, function keys, Tab Key, Enter
Key dan lain-lain. Method yang digunakan untuk mengambil tombol pada event
adalah dengan mengunakan method getKeyChar() dan getKeyCode().

Dibawah ini adalah tabel konstanta tombol yang biasa digunakan.
Bahasa Pemrograman I                                              Graphics Programming II
Pertemuan 6                                                     Halaman 24/24




Tabel Konstanta Tombol
               Constant                         Description
VK_HOME                           Home Key
VK_END                            End Key
VK_PGUP                           Page Up Key
VK_PGDN                           Page Down Key
VK_UP                             Up Arrow Key
VK_DOWN                           Down Arrow Key
VK_LEFT                           Left Arrow Key
VK_RIGHT                          Right Arrow Key
VK_ESCAPE                         Escape Key
VK_TAB                            Tab Key
VK_BACK_SPACE                     Backspace Key
VK_CAPS_LOCK                      Caps Lock Key
VK_NUM_LOCK                       Num Lock Key
VK_ENTER                          Enter Key
VK_F1 s/d VK_F12                  Function Key 1 s/d 12
VK_0 s/d VK_9                     Numeric Key 0 s/d 9
VK_A s/d VK_Z                     Letter Key A s/d Z


Perhatikan Contoh berikut:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class KeyboardEventDemo extends Applet {
   public static void main(String [] args) {
     Frame f = new MyFrameWithExitHandling();
     f.setLayout(new BorderLayout());
     KeyboardEventDemo ked = new KeyboardEventDemo();
     ked.init();
     ked.start();
     f.add(“Center”,ked);
     f.setSize(300,300);
     f.setVisible(true);
   }

    public void init() {
      Canvas c = new KeyboardCanvas();
       c.setBackground(Color.yellow);
       setLayout(new BorderLayout());
       add(“Center”,c);
       c.requestFocus();
    }
  class KeyboardCanvas extends Canvas implements KeyListener
  {
       private int x = 100;
       private int y = 100;
       private char keyChar = ‘A’;

Bahasa Pemrograman I                                    Graphics Programming II
Pertemuan 6                                                         Halaman 25/25




             public KeyboardCanvas() {
                addKeyListener(this);
             }

             public void keyReleased(KeyEvent e) { }
             public void keyTyped(KeyEvent e) {     }
             public void keyPressed(KeyEvent e) {
                 switch(e.getKeyCode())
                      {
                           case e.VK_DOWN: y+=10;break;
             case e.VK_UP: y-=10;break;
             case e.VK_LEFT: x-=10;break;
             case e.VK_RIGHT: x+=10;break;
               default : keyChar = e.getKeyChar();
                        }
                        repaint();
             }

            public void paint(Graphics g) {
              g.setFont(new Font(“TimesRoman”,Font.PLAIN,24));
              g.drawString(String.valueOf(keyChar),x,y);
        }


    }
}




Bahasa Pemrograman I                                        Graphics Programming II

More Related Content

What's hot

contoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyacontoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyastephan EL'wiin Shaarawy
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Ekha Cahya Nugraha
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visualrahmi wahyuni
 
Laporan praktikum v visual basic
Laporan praktikum v visual basicLaporan praktikum v visual basic
Laporan praktikum v visual basicrahmi wahyuni
 
modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)Reza Pramana
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Ekha Cahya Nugraha
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12Ekha Cahya Nugraha
 
Poss upi-python-dasar-part1
Poss upi-python-dasar-part1Poss upi-python-dasar-part1
Poss upi-python-dasar-part1Poss Upi
 
Pelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPIPelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPIRidwan Fadjar
 
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortLapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortAdy Achirul
 
Pelatihan Bahasa R
Pelatihan Bahasa RPelatihan Bahasa R
Pelatihan Bahasa Ranom0164
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visualrahmi wahyuni
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Ekha Cahya Nugraha
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program rKhair Norrasid
 
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangJeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangIndividual Consultants
 

What's hot (19)

contoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyacontoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnya
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visual
 
Laporan praktikum v visual basic
Laporan praktikum v visual basicLaporan praktikum v visual basic
Laporan praktikum v visual basic
 
Galeri PythonTeX
Galeri PythonTeXGaleri PythonTeX
Galeri PythonTeX
 
delphi
delphidelphi
delphi
 
modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12Laporan praktikum Algoritma dan Pemrograman pertemuan 12
Laporan praktikum Algoritma dan Pemrograman pertemuan 12
 
Poss upi-python-dasar-part1
Poss upi-python-dasar-part1Poss upi-python-dasar-part1
Poss upi-python-dasar-part1
 
Tm c++
Tm c++Tm c++
Tm c++
 
Pelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPIPelatihan Python Dasar Part 1 - POSS UPI
Pelatihan Python Dasar Part 1 - POSS UPI
 
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortLapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
 
Pelatihan Bahasa R
Pelatihan Bahasa RPelatihan Bahasa R
Pelatihan Bahasa R
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visual
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program r
 
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangJeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
 

Similar to GUI Components

11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdfJurnal IT
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdfJurnal IT
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingIndividual Consultants
 
11 GUI dengan-SWING Java.pptx
11 GUI dengan-SWING Java.pptx11 GUI dengan-SWING Java.pptx
11 GUI dengan-SWING Java.pptxdisjindenpasar
 
Button dan Input Widget.pptx
Button dan Input Widget.pptxButton dan Input Widget.pptx
Button dan Input Widget.pptxDevoutBoy
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algoSTMIK AKAKOM
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanUNIVERSITY Of LAMPUNG
 
Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)Devi Apriansyah
 
Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3) Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3) Devi Apriansyah
 
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERPemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERramadhani170488
 
Modul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoModul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoYatno Sudar
 
Jeni j2 me-bab10-optional%20packages
Jeni j2 me-bab10-optional%20packagesJeni j2 me-bab10-optional%20packages
Jeni j2 me-bab10-optional%20packagesUNIVERSITY Of LAMPUNG
 
05.70 JAVA SE_java list
05.70  JAVA SE_java list05.70  JAVA SE_java list
05.70 JAVA SE_java listJefri Fahrian
 
Aplikasi program komputer grafik
Aplikasi program komputer grafikAplikasi program komputer grafik
Aplikasi program komputer grafikfahlevizha
 
JENI-J2ME-Bab10-Optional%20Packages.pdf
JENI-J2ME-Bab10-Optional%20Packages.pdfJENI-J2ME-Bab10-Optional%20Packages.pdf
JENI-J2ME-Bab10-Optional%20Packages.pdfJurnal IT
 

Similar to GUI Components (20)

11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdf
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdf
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
 
Modul psb 2 j2me
Modul psb 2 j2meModul psb 2 j2me
Modul psb 2 j2me
 
11 GUI dengan-SWING Java.pptx
11 GUI dengan-SWING Java.pptx11 GUI dengan-SWING Java.pptx
11 GUI dengan-SWING Java.pptx
 
Button dan Input Widget.pptx
Button dan Input Widget.pptxButton dan Input Widget.pptx
Button dan Input Widget.pptx
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algo
 
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik TambahanJeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahan
 
Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)Laporan praktikum modul 2 (pemrograman swing 2)
Laporan praktikum modul 2 (pemrograman swing 2)
 
Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3) Laporan praktikum modul 3 (pemrograman swing 3)
Laporan praktikum modul 3 (pemrograman swing 3)
 
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERPemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
 
Modul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoModul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android Sudaryatno
 
Jeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 PackagesJeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 Packages
 
Jeni j2 me-bab10-optional%20packages
Jeni j2 me-bab10-optional%20packagesJeni j2 me-bab10-optional%20packages
Jeni j2 me-bab10-optional%20packages
 
05.70 JAVA SE_java list
05.70  JAVA SE_java list05.70  JAVA SE_java list
05.70 JAVA SE_java list
 
Aplikasi program komputer grafik
Aplikasi program komputer grafikAplikasi program komputer grafik
Aplikasi program komputer grafik
 
JENI-J2ME-Bab10-Optional%20Packages.pdf
JENI-J2ME-Bab10-Optional%20Packages.pdfJENI-J2ME-Bab10-Optional%20Packages.pdf
JENI-J2ME-Bab10-Optional%20Packages.pdf
 
Tutorial connecting access netbeans
Tutorial connecting access netbeansTutorial connecting access netbeans
Tutorial connecting access netbeans
 
Java
JavaJava
Java
 

More from The World Bank

Meruvian MDP 2.0.1 2017
Meruvian MDP 2.0.1 2017Meruvian MDP 2.0.1 2017
Meruvian MDP 2.0.1 2017The World Bank
 
G20 digital-economy-ministerial-declaration-english-version
G20 digital-economy-ministerial-declaration-english-versionG20 digital-economy-ministerial-declaration-english-version
G20 digital-economy-ministerial-declaration-english-versionThe World Bank
 
Kebijakan pembinaan smk 2017 (rakor lsp, 140317)
Kebijakan pembinaan smk  2017  (rakor lsp, 140317)Kebijakan pembinaan smk  2017  (rakor lsp, 140317)
Kebijakan pembinaan smk 2017 (rakor lsp, 140317)The World Bank
 
Inpres nomer 9 tahun 2016 - SMK
Inpres nomer 9 tahun 2016 - SMKInpres nomer 9 tahun 2016 - SMK
Inpres nomer 9 tahun 2016 - SMKThe World Bank
 
JBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco MatrixJBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco MatrixThe World Bank
 
VSphere Integrated Containers v3.0
VSphere Integrated Containers v3.0VSphere Integrated Containers v3.0
VSphere Integrated Containers v3.0The World Bank
 
SoftBank ARM TechCon Keynote Masayoshi Son
SoftBank ARM TechCon Keynote Masayoshi SonSoftBank ARM TechCon Keynote Masayoshi Son
SoftBank ARM TechCon Keynote Masayoshi SonThe World Bank
 
KPTIK Maestro internship program
KPTIK Maestro internship programKPTIK Maestro internship program
KPTIK Maestro internship programThe World Bank
 
MOU 5 Menteri Terkait Vokasi dan SMK 4 5919
MOU 5 Menteri Terkait Vokasi dan SMK 4 5919MOU 5 Menteri Terkait Vokasi dan SMK 4 5919
MOU 5 Menteri Terkait Vokasi dan SMK 4 5919The World Bank
 
PKS 5 Menteri terkait Vokasi dan SMK
PKS 5 Menteri terkait Vokasi dan SMKPKS 5 Menteri terkait Vokasi dan SMK
PKS 5 Menteri terkait Vokasi dan SMKThe World Bank
 
Instruktur Teman Sebaya (edit 28nov)
Instruktur Teman Sebaya (edit 28nov)Instruktur Teman Sebaya (edit 28nov)
Instruktur Teman Sebaya (edit 28nov)The World Bank
 
Kebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compress
Kebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compressKebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compress
Kebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compressThe World Bank
 
Instruktur Teman Sebaya
Instruktur Teman SebayaInstruktur Teman Sebaya
Instruktur Teman SebayaThe World Bank
 
Docker QNAP Container Station
Docker QNAP Container StationDocker QNAP Container Station
Docker QNAP Container StationThe World Bank
 
Penetrasi & Prilaku Pengguna Internet Indonesia 2016
Penetrasi & Prilaku Pengguna Internet Indonesia 2016Penetrasi & Prilaku Pengguna Internet Indonesia 2016
Penetrasi & Prilaku Pengguna Internet Indonesia 2016The World Bank
 
Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016
Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016
Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016The World Bank
 
Paparan Aspek Hukum Tanda Tangan Digital
Paparan Aspek Hukum Tanda Tangan Digital Paparan Aspek Hukum Tanda Tangan Digital
Paparan Aspek Hukum Tanda Tangan Digital The World Bank
 
Presentasi Seminar TTD Aplikasi Perkantoran
Presentasi Seminar TTD Aplikasi PerkantoranPresentasi Seminar TTD Aplikasi Perkantoran
Presentasi Seminar TTD Aplikasi PerkantoranThe World Bank
 

More from The World Bank (20)

Meruvian MDP 2.0.1 2017
Meruvian MDP 2.0.1 2017Meruvian MDP 2.0.1 2017
Meruvian MDP 2.0.1 2017
 
G20 digital-economy-ministerial-declaration-english-version
G20 digital-economy-ministerial-declaration-english-versionG20 digital-economy-ministerial-declaration-english-version
G20 digital-economy-ministerial-declaration-english-version
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Kebijakan pembinaan smk 2017 (rakor lsp, 140317)
Kebijakan pembinaan smk  2017  (rakor lsp, 140317)Kebijakan pembinaan smk  2017  (rakor lsp, 140317)
Kebijakan pembinaan smk 2017 (rakor lsp, 140317)
 
Inpres nomer 9 tahun 2016 - SMK
Inpres nomer 9 tahun 2016 - SMKInpres nomer 9 tahun 2016 - SMK
Inpres nomer 9 tahun 2016 - SMK
 
JBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco MatrixJBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco Matrix
 
VSphere Integrated Containers v3.0
VSphere Integrated Containers v3.0VSphere Integrated Containers v3.0
VSphere Integrated Containers v3.0
 
SoftBank ARM TechCon Keynote Masayoshi Son
SoftBank ARM TechCon Keynote Masayoshi SonSoftBank ARM TechCon Keynote Masayoshi Son
SoftBank ARM TechCon Keynote Masayoshi Son
 
KPTIK Maestro internship program
KPTIK Maestro internship programKPTIK Maestro internship program
KPTIK Maestro internship program
 
MOU 5 Menteri Terkait Vokasi dan SMK 4 5919
MOU 5 Menteri Terkait Vokasi dan SMK 4 5919MOU 5 Menteri Terkait Vokasi dan SMK 4 5919
MOU 5 Menteri Terkait Vokasi dan SMK 4 5919
 
PKS 5 Menteri terkait Vokasi dan SMK
PKS 5 Menteri terkait Vokasi dan SMKPKS 5 Menteri terkait Vokasi dan SMK
PKS 5 Menteri terkait Vokasi dan SMK
 
Design Sprint Methods
Design Sprint MethodsDesign Sprint Methods
Design Sprint Methods
 
Instruktur Teman Sebaya (edit 28nov)
Instruktur Teman Sebaya (edit 28nov)Instruktur Teman Sebaya (edit 28nov)
Instruktur Teman Sebaya (edit 28nov)
 
Kebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compress
Kebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compressKebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compress
Kebijakan pengembangan pendidikan kejuruan (its, 23 nov 2016) compress
 
Instruktur Teman Sebaya
Instruktur Teman SebayaInstruktur Teman Sebaya
Instruktur Teman Sebaya
 
Docker QNAP Container Station
Docker QNAP Container StationDocker QNAP Container Station
Docker QNAP Container Station
 
Penetrasi & Prilaku Pengguna Internet Indonesia 2016
Penetrasi & Prilaku Pengguna Internet Indonesia 2016Penetrasi & Prilaku Pengguna Internet Indonesia 2016
Penetrasi & Prilaku Pengguna Internet Indonesia 2016
 
Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016
Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016
Tindak Lanjut Program Pendidikan Vokasi 30 Agustus 2016
 
Paparan Aspek Hukum Tanda Tangan Digital
Paparan Aspek Hukum Tanda Tangan Digital Paparan Aspek Hukum Tanda Tangan Digital
Paparan Aspek Hukum Tanda Tangan Digital
 
Presentasi Seminar TTD Aplikasi Perkantoran
Presentasi Seminar TTD Aplikasi PerkantoranPresentasi Seminar TTD Aplikasi Perkantoran
Presentasi Seminar TTD Aplikasi Perkantoran
 

GUI Components

  • 1. Pertemuan 6 Halaman 1/1 Graphics Programming II Creating User Interface Graphical User Interface (GUI) digunakan untuk mempermudah pemakaian suatu sistem. GUI terdiri dari component-component GUI yang berinteraksi dengan pemakai. Java menyediakan component-component tersebut, untuk membuat GUI. Di bab ini akan dijelaskan beberapa component penting dan bagaimana cara kerjanya. Button Merupakan component yang memberikan suatu event jika ditekan. Constructor: public Button() membuat Button dengan label kosong public Button(String s) membuat Button dengan label yang ditentukan oleh variabel s Common Used Method: public String getLabel() untuk mengambil atau mereset label pada button public void setLabel(String s) untuk melakukan set pada label button Event : Event Name Cause ActionEvent menekan tombol enter Contoh : Pada MyFrameWithExitHandling.java import java.awt.*; import java.awt.event.*; class MyFrameWithExitHandling extends Frame implements WindowListener { public MyFrameWithExitHandling () { addWindowListener(this); } public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowOpened(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} } Bahasa Pemrograman I Graphics Programming II
  • 2. Pertemuan 6 Halaman 2/2 Pada ButtonTest.java import java.awt.*; import java.awt.event.*; class ButtonTest extends MyFrameWithExitHandling implements ActionListener { Button btnOne = null; Button btnTwo = null; String message = ""; ButtonTest () { setLayout(new FlowLayout()); btnOne = new Button("1"); btnTwo = new Button("2"); btnOne.addActionListener(this); btnTwo.addActionListener(this); add(btnOne); add(btnTwo); } public static void main(String [] args) { ButtonTest f = new ButtonTest(); f.setSize(200,200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { String ActionCommand = e.getActionCommand(); if(e.getSource() instanceof Button) if(ActionCommand.equals("1")) { message = "Button 1 pressed"; repaint(); } else if(ActionCommand.equals("2")) { message = "Button 2 pressed"; repaint(); } } public void paint(Graphics g) { FontMetrics fm = g.getFontMetrics(); int w = fm.stringWidth(message); int h = fm.getAscent(); int x = (getSize().width-w)/2; int y = (getSize().height+h)/2; g.drawString(message,x,y); } Bahasa Pemrograman I Graphics Programming II
  • 3. Pertemuan 6 Halaman 3/3 Label Merupakan component yang dapat digunakan sebagai teks string atau memberikan label kepada component lain. Constructor: public Label() membuat Label kosong dengan pengaturan rata kiri public Label(String s) membuat Label dengan teks variabel s dan rata kiri public Label(String s, int membuat Label dengan teks variabel s dengan alignment) pengaturan rata yang dapat diatur (Label.CENTER, Label.LEFT, Label.RIGHT) Common Used Method: public String getText() untuk mengambil atau mereset label pada button public void setText(String s) untuk melakukan set pada label button public getAlignment() untuk menngambil tipe pengaturan rata public setAligntment(int untuk melakukan set pengaturan rata alignment) Contoh : Pada LabelTest.java import java.awt.*; import java.awt.event.*; class LabelTest extends MyFrameWithExitHandling implements ActionListener { Button btnOne = null; Button btnTwo = null; Label lblDisplay = null; LabelTest () { setLayout(new GridLayout(3,1,10,10)); btnOne = new Button("1"); btnTwo = new Button("2"); lblDisplay = new Label(); btnOne.addActionListener(this); btnTwo.addActionListener(this); add(btnOne); add(btnTwo); add(lblDisplay); } public static void main(String [] args) { LabelTest f = new LabelTest(); f.setSize(200,200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { String ActionCommand = e.getActionCommand(); Bahasa Pemrograman I Graphics Programming II
  • 4. Pertemuan 6 Halaman 4/4 if(e.getSource() instanceof Button) if(ActionCommand.equals("1")) lblDisplay.setText("Button 1 pressed"); else if(ActionCommand.equals("2")) lblDisplay.setText("Button 2 pressed"); } TextField Merupakan component yang digunakan untuk menerima masukan satu baris karakter dari pemakai. Constructor: public TextField(int width) membuat TextField kosong dengan panjang kolom ditentukan public TextField(String s) membuat TextField dengan menampilkan String s public TextField(String s, int membuat TextField dengan menampilkan String s dan width) panjang kolom yang ditentukan Common Used Method: public String getText() untuk mengambil nilai teks pada TextField public void setText(String s) untuk melakukan set teks pada TextField public setEditable(boolean untuk mengatur TextField bisa diedit atau tidak bisa editable) diedit (secara default bernilai true) public void setColumns(int untuk mengatur panjang kolom dari TextField width) Event : Event Name Cause ActionEvent menekan tombol enter ItemEvent mengganti nilai / isi dari TextField Contoh : Pada TextFieldTest.java import java.awt.*; import java.awt.event.*; class TextFieldTest extends MyFrameWithExitHandling implements ActionListener { Button btnOne = null; Label lblDisplay = null; TextField txtInput = null; TextFieldTest () { setLayout(new GridLayout(3,1,10,10)); txtInput = new TextField(); btnOne = new Button("Ok"); lblDisplay = new Label(); btnOne.addActionListener(this); add(txtInput); Bahasa Pemrograman I Graphics Programming II
  • 5. Pertemuan 6 Halaman 5/5 add(btnOne); add(lblDisplay); } public static void main(String [] args) { TextFieldTest f = new TextFieldTest(); f.setSize(200,200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { String ActionCommand = e.getActionCommand(); if(e.getSource() instanceof Button) if(ActionCommand.equals("Ok")) lblDisplay.setText(txtInput.getText()); } } TextArea Merupakan component yang digunakan untuk menerima masukan beberapa baris karakter dari pemakai. Constructor: public TextArea(int rows, int Membuat TextArea dengan baris dan kolom yang columns) ditentukan public TextArea(String s, int Membuat TextArea dengan menampilkan String s dan rows, int columns) menentukan baris dan kolomnya. public TextArea(String s, int Membuat TextArea dengan menampilkan String s rows, int columns, int ,menentukan baris dan kolomnya dan mengatur scrollbars) penampilan dari scrollbars tipe dari scrollbars : § SCROLLBARS_BOTH § SCROLLBARS_VERTICAL_ONLY § SCROLLBARS_HORIZONTAL_ONLY § SCROLLBARS_NONE Common Used Method: public void insert(String s, int untuk menambah String s pada TextArea dengan pos) posisi awal pos public void append(String s) untuk menambah String s pada TextArea public void replaceRange(String untuk mengganti nilai TextArea dengan nilai s s,int start, int end) pada posisi awal start dan posisi akhir end public int getRows() untuk mengembalikan jumlah baris pada TextArea public synchronized String untuk mengambil text pada TextArea getText() public synchronized String untuk mengambil Text yang sedang dipilih pada Bahasa Pemrograman I Graphics Programming II
  • 6. Pertemuan 6 Halaman 6/6 getSelectedText() TextArea Contoh : Pada TextArea.java import java.awt.*; import java.awt.event.*; class TextAreaTest extends MyFrameWithExitHandling implements ActionListener { Button btnOne = null; Label lblDisplay = null; TextArea txtInput = null; TextAreaTest () { setLayout(new GridLayout(3,1,10,10)); txtInput = new TextArea(); btnOne = new Button("Ok"); lblDisplay = new Label(); btnOne.addActionListener(this); add(txtInput); add(btnOne); add(lblDisplay); } public static void main(String [] args) { TextAreaTest f = new TextAreaTest(); f.setSize(200,200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { String ActionCommand = e.getActionCommand(); if(e.getSource() instanceof Button) if(ActionCommand.equals("Ok")) lblDisplay.setText(txtInput.getText()); } } Choice Merupakan component yang digunakan menampilkan beberapa pilihan yang dapat di pilih oleh pemakai. Constructor: public Choice() membuat Choice object Common Used Method: public void add(String s) menambahkan pilihan s pada Choice public String getItem(int index) mengambil item yang pada Choice dengan posisi index Bahasa Pemrograman I Graphics Programming II
  • 7. Pertemuan 6 Halaman 7/7 public int getSelectedIndex() mengambil posisi index aktif pada Choice public String getSelectedItem() mengambil String aktif pada Choice public void Select(int index) melakukan set choice dengan pilihan pada posisi index public void select(String str) melakukan set choice dengan pilihan sesusai str Contoh : import java.awt.*; import java.awt.event.*; class ChoiceTest extends MyFrameWithExitHandling implements ActionListener { Button btnOne = null; Label lblDisplay = null; Choice chcInput = null; ChoiceTest () { setLayout(new GridLayout(3,1,10,10)); chcInput = new Choice(); chcInput.addItem("First"); chcInput.addItem("Second"); chcInput.addItem("Third"); btnOne = new Button("Ok"); lblDisplay = new Label(); btnOne.addActionListener(this); add(chcInput); add(btnOne); add(lblDisplay); } public static void main(String [] args) { ChoiceTest f = new ChoiceTest(); f.setSize(200,200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { String ActionCommand = e.getActionCommand(); if(e.getSource() instanceof Button) if(ActionCommand.equals("Ok")) lblDisplay.setText(chcInput.getSelectedItem()); } } List Merupakan component yang digunakan untuk menampilkan beberapa pilihan yang dapat dipilih oleh user. Perbedaannya dengan Choice adalah List dapat melakukan single atau multiple selection. Bahasa Pemrograman I Graphics Programming II
  • 8. Pertemuan 6 Halaman 8/8 Constructor: public List(int rows, boolean membuat List dengan baris row dan set mode multipleSelection) multipleSelection public List(int rows) Membuat List dengan baris row public List() membuat List Common Used Method: public void add(String s) menambahkan s pada List public String getItem(int row) mengambil Item pada baris row public int getSelectedIndex() mengambil index yang sedang dipilih public String getSelectedItem() mengambil Item yang sedang dipilih public String [] getSelectedItems() mengambil beberapa item yang sedang dipilih Contoh: Pada ListTest.java import java.awt.*; import java.awt.event.*; class ListTest extends MyFrameWithExitHandling implements ActionListener { Button btnOne = null; Label lblDisplay = null; List lstInput = null; ListTest () { setLayout(new GridLayout(3,1,10,10)); lstInput = new List(); lstInput.addItem("First"); lstInput.addItem("Second"); lstInput.addItem("Third"); lstInput.addItem("Fourth"); lstInput.addItem("Fifth"); btnOne = new Button("Ok"); lblDisplay = new Label(); btnOne.addActionListener(this); add(lstInput); add(btnOne); add(lblDisplay); } public static void main(String [] args) { ListTest f = new ListTest(); f.setSize(200,200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { String ActionCommand = e.getActionCommand(); Bahasa Pemrograman I Graphics Programming II
  • 9. Pertemuan 6 Halaman 9/9 if(e.getSource() instanceof Button) if(ActionCommand.equals("Ok")) lblDisplay.setText(lstInput.getSelectedItem()); } } CheckBox Merupakan component yang dapat di pilih oleh pemakai untuk aktif/tidak aktif (toggle). Constructor: public CheckBox(String label) membuat CheckBox dengan default teks label public CheckBox() membuat CheckBox tanpa label public CheckBox(String label, boolean membuat CheckBox dengan label dan state state) yang ditentukan Common Used Method: public boolean getState() mengambil State dari CheckBox public void setState(boolean state) melakukan set State dari CheckBox public setCheckBoxGroup(CheckBoxGroup g) memasukan CheckBox ke dalam CheckBoxGroup Contoh : Pada CheckBox.java import java.awt.*; import java.awt.event.*; class CheckBoxTest extends MyFrameWithExitHandling implements ItemListener { String message = "This is CheckBox demo"; int selection = 0; Checkbox chkBold = null; Checkbox chkItalic = null; CheckBoxTest () { setLayout(new FlowLayout()); chkBold = new Checkbox("Bold"); chkItalic = new Checkbox("Italic"); chkBold.addItemListener(this); chkItalic.addItemListener(this); add(chkBold); add(chkItalic); } public static void main(String [] args) { CheckBoxTest f = new CheckBoxTest(); Bahasa Pemrograman I Graphics Programming II
  • 10. Pertemuan 6 Halaman 10/10 f.setSize(200,200); f.setVisible(true); } public void itemStateChanged(ItemEvent e) { int selection = 0; if(chkBold.getState()) selection+=Font.BOLD; if(chkItalic.getState()) selection+=Font.ITALIC; this.selection = selection; repaint(); } public void paint(Graphics g) { FontMetrics fm = g.getFontMetrics(); Font fn = new Font("Courier",selection,12); g.setFont(fn); int w = fm.stringWidth(message); int h = fm.getAscent(); int x = (getSize().width-w)/2; int y = (getSize().height+h)/2; g.drawString(message,x,y); } } CheckBoxGroup Merupakan kumpulan dari CheckBox biasanya disebut radio buttons. Pada CheckBoxGroup hanya salah satu dari CheckBox saja yang dapat diaktifkan. Constructor: public CheckBoxGroup() membuat CheckBoxGroup Common Used Method: public CheckBox mengambil CheckBox yang sedang aktif getSelectedCheckBox() public synchronized void melakukan set CheckBox yang akan dipilih setSelectedCheckBox(CheckBox box) Contoh: import java.awt.*; import java.awt.event.*; class CheckBoxGroupTest extends MyFrameWithExitHandling implements ItemListener { String message = "This is CheckBox demo"; Bahasa Pemrograman I Graphics Programming II
  • 11. Pertemuan 6 Halaman 11/11 int selection = 0; Checkbox chkBold = null; Checkbox chkItalic = null; CheckboxGroup cb = null; CheckBoxGroupTest () { setLayout(new FlowLayout()); cb = new CheckboxGroup(); chkBold = new Checkbox("Bold",cb,false); chkItalic = new Checkbox("Italic",cb,false); chkBold.addItemListener(this); chkItalic.addItemListener(this); add(chkBold); add(chkItalic); } public static void main(String [] args) { CheckBoxGroupTest f = new CheckBoxGroupTest(); f.setSize(200,200); f.setVisible(true); } public void itemStateChanged(ItemEvent e) { int selection = 0; if(chkBold.getState()) selection+=Font.BOLD; if(chkItalic.getState()) selection+=Font.ITALIC; this.selection = selection; repaint(); } public void paint(Graphics g) { FontMetrics fm = g.getFontMetrics(); Font fn = new Font("Courier",selection,12); g.setFont(fn); int w = fm.stringWidth(message); int h = fm.getAscent(); int x = (getSize().width-w)/2; int y = (getSize().height+h)/2; g.drawString(message,x,y); } } Bahasa Pemrograman I Graphics Programming II
  • 12. Pertemuan 6 Halaman 12/12 Dialog Merupakan cointaner yang biasanya dipakai sebagai tampilan sementara atau sebagai tampilan untuk menerima masukan dari pemakai. Constructor: public Dialog(Frame parent, String membuat Dialog dengan judul dan modal title, boolean modal) state yang dapat diset public Dialog(Frame parent) membuat Dialog public Dialog(Frame parent, boolean membuat Dialog dengan modal state yang modal) dapat diset public Dialog(Frame parent, String membuat Dialog dengan judul yang dapat title) diset Common Used Method: public void setModal(boolean b) merubah state dari Dialog Modal public void setTitle(String title) merubah judul dari Dialog public show() menampilkan Dialog Contoh: Pada DialogTest.java import java.awt.*; import java.awt.event.*; class DialogTest extends MyFrameWithExitHandling implements ActionListener { Button x = null; DialogTest() { setLayout(new FlowLayout()); x = new Button("open"); x.addActionListener(this); add(x); } public void actionPerformed(ActionEvent e) { if(e.getSource() instanceof Button) if(e.getActionCommand().equals("open")) { MyDialog md = new MyDialog(this,true); md.pack(); md.show(); } } public static void main(String [] args) { DialogTest f = new DialogTest(); f.setSize(100,100); f.setVisible(true); } Bahasa Pemrograman I Graphics Programming II
  • 13. Pertemuan 6 Halaman 13/13 class MyDialog extends Dialog implements WindowListener { Label lblDisp = new Label("Hello this is my dialog"); MyDialog(Frame parent,boolean modal) { super(parent,modal); addWindowListener(this); setLayout(new FlowLayout()); add(lblDisp); } public void windowClosing(WindowEvent e) { dispose(); } public void windowOpened(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e){} } } Menu Merupakan pilihan yang biasa digunakan pada aplikasi berbasis window . Menu dibagi menjadi tiga bagian : 1. MenuBar Constructor: public MenuBar() membuat MenuBar Common Used Method: public Menu add(Menu m) menambahkan Menu pada MenuBar public int getMenuCount() mengambil jumlah Menu pada MenuBar public void membuang Menu dari MenuBar remove(MenuComponent m) public Menu getMenu(int i) mengambil Menu pada urutan ke i 2. Menu Constructor: public Menu(String label, membuat Menu dengan label dan mode boolean tearOff) tearOff public Menu(String label) membuat Menu dengan label public Menu() membuat Menu Common Used Method: public MenuItem menambahkan MenuItem pada Menu add(MenuItem mi) public void add(String label) public void addSeparator() menambahkan pemisah Bahasa Pemrograman I Graphics Programming II
  • 14. Pertemuan 6 Halaman 14/14 public int getItemCount() mengambil jumlah MenuItem pada Menu public void menghapus MenuItem dari Menu remove(MenuComponent item) remove(int index) menghapus MenuItem melalui index removeAll() menghapus semua MenuItem 3. MenuItem Constructor: public MenuItem() membuat MenuItem MenuItem(String label) membuat MenuItem dengan label Common Used Method: public synchronized void melakukan set aktif/non aktif suatu setEnabled(boolean b) MenuItem public synchronized void merubah label dari MenuItem setLabel( String label) Contoh: Pada MenuTest.java import java.awt.*; import java.awt.event.*; class MenuTest extends MyFrameWithExitHandling implements ActionListener { Button x = null; MenuBar mb = null; Menu mn = null; MenuItem miOpen,miExit; MenuTest() { setLayout(new FlowLayout()); x = new Button("open"); x.addActionListener(this); add(x); mb = new MenuBar(); mn = new Menu("File"); miOpen = new MenuItem("Open"); miExit = new MenuItem("Exit"); miOpen.addActionListener(this); miExit.addActionListener(this); setMenuBar(mb); mb.add(mn); mn.add(miOpen); mn.addSeparator(); mn.add(miExit); } Bahasa Pemrograman I Graphics Programming II
  • 15. Pertemuan 6 Halaman 15/15 public void actionPerformed(ActionEvent e) { if(e.getSource() instanceof Button) if(e.getActionCommand().equals("open")) { MyDialog md = new MyDialog(this,true); md.pack(); md.show(); } if(e.getSource() instanceof MenuItem) if(e.getActionCommand().equals("Open")) { MyDialog md = new MyDialog(this,true); md.pack(); md.show(); } else if(e.getActionCommand().equals("Exit")) { System.exit(0); } } public static void main(String [] args) { MenuTest f = new MenuTest(); f.setSize(100,100); f.setVisible(true); } class MyDialog extends Dialog implements WindowListener { Label lblDisp = new Label("Hello this is my dialog"); MyDialog(Frame parent,boolean modal) { super(parent,modal); addWindowListener(this); setLayout(new FlowLayout()); add(lblDisp); } public void windowClosing(WindowEvent e) { dispose(); } public void windowOpened(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e){} } } Bahasa Pemrograman I Graphics Programming II
  • 16. Pertemuan 6 Halaman 16/16 Scrollbar Merupakan component yang dipergunakan oleh pemakai untuk memilih nilai dengan range tertentu. Constructor: public Scrollbar() membuat Scrollbar public Scrollbar(int membuat Scrollbar dengan mode orientasi ditentukan: orientation) Scrollbar.HORIZONTAL (mendatar) Scrollbar.VERTICAL (tegak) public Scrollbar(int membuat Scrollbar dengan mode orientasi ditentukan, orientation, int value, int nilai default value, besar dari bubble, minimum range visible, int minimum, int dan maksimum range maximum) Common Used Method: public int getValue() mengambil harga terakhir dari Scrollbar public void setMaximum(int melakukan set range Maksimum newMaximum) public void setMinimum(int melakukan set range Minimum newMinimum) public void setOrientation(int melakukan set mode orientasi orientation) setUnitIncrement(int v) melakukan set besarnya unit pertambahan dari Scrollbar Contoh: Pada ScrollbarTest.java import java.awt.*; import java.awt.event.*; class ScrollbarTest extends MyFrameWithExitHandling implements AdjustmentListener { Scrollbar red,green,blue; MyCanvas mc = null; int r=0; int g=0; int b=0; ScrollbarTest() { setLayout(new GridLayout(1,2)); Panel p2 = new Panel(); p2.setLayout(new FlowLayout()); mc = new MyCanvas(); red = new Scrollbar(Scrollbar.VERTICAL,0,30,0,255); green = new Scrollbar(Scrollbar.VERTICAL,0,30,0,255); blue = new Scrollbar(Scrollbar.VERTICAL,0,30,0,255); red.addAdjustmentListener(this); green.addAdjustmentListener(this); blue.addAdjustmentListener(this); p2.add(red); Bahasa Pemrograman I Graphics Programming II
  • 17. Pertemuan 6 Halaman 17/17 p2.add(green); p2.add(blue); add(mc); add(p2); } public void adjustmentValueChanged(AdjustmentEvent e) { if(e.getSource() == red) r=red.getValue(); if(e.getSource() == green) g=green.getValue(); if(e.getSource() == blue) b=blue.getValue(); mc.setMyRGB(r,g,b); } public static void main(String [] args) { ScrollbarTest f = new ScrollbarTest(); f.setSize(200,200); f.setVisible(true); } class MyCanvas extends Canvas { int r=0; int g=0; int b=0; MyCanvas() { } public void setMyRGB(int r,int g,int b) { this.r=r; this.g=g; this.b=b; repaint(); } public void paint(Graphics g) { Color c = new Color(this.r,this.g,this.b); setBackground(c); } } } Creating Multiple Windows Untuk membuat suatu aplikasi dengan menggunakan lebih dari sebuah window kita dapat membuat instance dari Frame atau Dialog. jika kita menginginkan suatu masukan dari window kedua sebaiknya kita menggunakan Dialog. Frame dengan Frame Bahasa Pemrograman I Graphics Programming II
  • 18. Pertemuan 6 Halaman 18/18 Pada Frame dengan Frame kita menggunakan setVisible(true) untuk mengaktifkan Frame kedua dan setVisible(false) untuk me non-aktifkan Frame kedua. Frame dengan Dialog pada Frame dengan Dialog kita menggunakan show() untuk mengaktifkan Dialog dan dispose() untuk menon-aktifkan Dialog Applet Pengertian Applet Suatu aplikasi java yang dapat dijalankan melalui web browser. berbeda dengan aplikasi java biasa, applet harus diturunkan / extends dari java.awt.Applet class. Applet terdiri dari dua bagian yaitu Applet class sendiri serta HTML (Hypertext Mark-up Language) yang menjalankan Applet class tersebut. Struktur Applet public class MyApplet extends java.applet.Applet { public void init() { ... } public void start() { ... } public void stop() { ... } public void destroy() { ... } } Keterangan: § init() method Method init() dipanggil pada saat Applet pertama kali diload atau dilakukan reload. init() dapat di-override jika ingin melakukan suatu inisialisasi. § start() method Method start() dipanggil setelah init() method dan ketika Applet kembali aktif setelah beberapa saat tidak aktif. Contoh seorang pemakai memanggil kembali web page yang berisi applet § stop() method Method stop() dipanggil setelah Applet tidak aktif. contoh seorang pemakai meninggalkan web page yang berisi applet. Biasanya method stop() digunakan Bahasa Pemrograman I Graphics Programming II
  • 19. Pertemuan 6 Halaman 19/19 untuk menghentikan sementara thread pada applet agar tidak memakan banyak resources. § destroy() method Method destroy() dipanggil setelah Applet dinyatakan sudah tidak digunakan lagi. method destroy() di-override untuk menjalankan suatu operasi sebelum applet berhenti. Method ini digunakan untuk membersihkan alokasi resource. Menjalankan Applet Applet harus ditempelkan kedalam HTML dengan menggunakan <applet> HTML tag. Syntaks dari tag adalah sebagai berikut : <applet code=classfilename.class width=applet_viewing_width_in_pixels height=applet_viewing_heigh_in_pixels [archive=archive_file] [codebase=applet_url] [vspace=vertical_margin] [hspace=horizontal_margin] [align=applet_alignment] [alt=alternative_text] > <param name = param_name1 value=param_value1> < param name = param_name1 value=param_value2> ... < param name = param_name1 value=param_valueN> </applet> HTML ini kemudian dapat dijalankan pada browser atau dijalankan pada AppletViewer HTMFile.htm Keterangan: § archive Archive digunakan untuk menginstruksikan browser untuk melakukan load archive file yang berisi seluruh class file yang digunakan oleh applet. untuk membuat archive file dapat digunakan perintah : jar –cf filename.jar classfile1.class classfile2.class § codebase Codebase berguna agar applet dapat di-load dari alamat internet yang telah ditentukan. Jika codebase tidak disertakan maka applet class harus berada pada directory yang sama HTML file. § vspace dan hspace Digunakan untuk merubah besar batas margin kosong dari applet dalam satuan pixel Bahasa Pemrograman I Graphics Programming II
  • 20. Pertemuan 6 Halaman 20/20 § align Digunakan untuk menentukan bagaimana suatu applet diatur pada browser. Align dapat menggunakan left, right, top, texttop, middle, absmiddle, baseline, bottom dan absbottom. § alt digunakan untuk menampilkan suatu teks apabila applet tidak dapat dijalankan pada browser. Contoh : Pada MortgageApplet.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class MortgageApplet extends Applet implements ActionListener { private TextField tfInterestRate; private TextField tfYear; private TextField tfLoan; private TextField tfMonthlyPay; private TextField tfTotalPay; private Button btCompute; public void init() { tfInterestRate = new TextField(10); tfYear = new TextField(10); tfLoan = new TextField(10); tfMonthlyPay = new TextField(10); tfMonthlyPay.setEditable(false); tfTotalPay = new TextField(10); tfTotalPay.setEditable(false); btCompute = new Button("Compute"); setBackground(Color.yellow); setForeground(Color.red); Panel p = new Panel(); p.setLayout(new GridLayout(5,2)); p.add(new Label("Interest Rate :")); p.add(tfInterestRate); p.add(new Label("Years :")); p.add(tfYear); p.add(new Label("Loan Amount:")); p.add(tfLoan); p.add(new Label("Monthly Payment :")); p.add(tfMonthlyPay); p.add(new Label("Total Payment :")); p.add(tfTotalPay); setLayout(new FlowLayout()); add(p); add(btCompute); Bahasa Pemrograman I Graphics Programming II
  • 21. Pertemuan 6 Halaman 21/21 btCompute.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource() instanceof Button) if(e.getActionCommand().equals("Compute")); { double interest = (Double.valueOf(tfInterestRate.getText())).doubleValue(); int year = (Integer.valueOf(tfYear.getText())).intValue(); double loan = (Double.valueOf(tfLoan.getText())).doubleValue(); Mortgage m = new Mortgage(interest,year,loan); tfMonthlyPay.setText(String.valueOf(m.monthlyPay())); tfTotalPay.setText(String.valueOf(m.totalPay())); } } class Mortgage { private double interest; private int year; private double loan; Mortgage(double i, int y, double l) { interest = i/1200.0; year = y; loan = l; } public double getInterest() { return interest; } public double getYear() { return year; } public double getLoan() { return loan; } public double monthlyPay() { return loan*interest/(1-(Math.pow(1/(1+interest),year*12))); } public double totalPay() { return monthlyPay()*year*12; } } } Pada MyMortgage.htm <HTMl> <HEAD> Bahasa Pemrograman I Graphics Programming II
  • 22. Pertemuan 6 Halaman 22/22 </HEAD> <BODY> <APPLET CODE = "MortgageApplet.class" WIDTH = 300 HEIGHT = 150 > </APPLET> </BODY> </HTML> Menggunakan parameter pada applet Untuk menangkap parameter yang dikirimkan oleh HTML pada applet kita dapat melakukan pada saat method init(). Caranya adalah dengan menggunakan method getParameter(); Perhatikan contoh berikut : Pada DisplayMessage.java import java.applet.Applet; import java.awt.*; public class DisplayMessage extends Applet { private String message; private int x = 20; private int y = 20; public void init() { message = getParameter(“MESSAGE”); x = Integer.parseInt(getParameter(“X”)); y = Integer.parseInt(getParameter(“Y”)); } public void paint(Graphics g) { g.setColor(Color.red); g.drawString(message,x,y); } } Pada Display.htm <HTMl> <HEAD> </HEAD> <BODY> <APPLET CODE = "DisplayMessage.class" WIDTH = 200 HEIGHT = 50 > <PARAM NAME = MESSAGE VALUE = “Welcome to Java”> <PARAM NAME = X VALUE = 20> <PARAM NAME = Y VALUE = 30> </APPLET> </BODY> </HTML> Bahasa Pemrograman I Graphics Programming II
  • 23. Pertemuan 6 Halaman 23/23 Menjalankan Program sebagai Applet dan sebagai Aplikasi Program Applet dapat kita buat agar dapat berjalan sebagai applet ataupun sebagai aplikasi java. Cara yang dapat dilakukan adalah : 1. menambah method main() pada Applet 2. buat suatu instance dari Frame 3. buat suatu instance dari Applet 4. tambahkan Applet ke Frame dengan menggunakan method add() dari Frame 5. panggil method init() dan start() dari Applet 6. tampilkan Frame atau setVisible() menjadi true pada Frame public static void main(String [] args) { Frame f = new MyFrameWithExitHandling(); MortgageApplet mt = new MortgageApplet(); f.setLayout(new BorderLayout()); f.add(“Center”,mt); f.setSize(300,300); mt.init(); mt.start(); f.setVisible(true); } Tambahkan bagian ini pada MortgageApplet.java dan jalankan dengan java MortgageApplet. Keyboard Event Keyboard Event merupakan event yang dibuat pada saat suatu keyboard ditekan. Dengan menggunakan Keyboard Events seorang pemakai dapat menggunakan tombol keyboard untuk mengontrol dan melakukan suatu action dan menerima masukan dari keyboard. untuk memproses suatu keyboard event harus melakukan implements dari interface KeyListener dengan method : § public void keyPressed(KeyEvent e) Handler ini dipanggil pada saat tombol ditekan § public void keyReleased(KeyEvent e) Handler ini dipanggil pada saat tombol dilepaskan § public void keyTyped(KeyEvent e) Handler ini dipanggil pada saat suatu tombol ditekan dan kemudian dilepaskan kembali. Tombol yang ditangkap oleh event berupa bilangan integer yang merepresentasikan Unicode Character beserta Alphanumeric Character, function keys, Tab Key, Enter Key dan lain-lain. Method yang digunakan untuk mengambil tombol pada event adalah dengan mengunakan method getKeyChar() dan getKeyCode(). Dibawah ini adalah tabel konstanta tombol yang biasa digunakan. Bahasa Pemrograman I Graphics Programming II
  • 24. Pertemuan 6 Halaman 24/24 Tabel Konstanta Tombol Constant Description VK_HOME Home Key VK_END End Key VK_PGUP Page Up Key VK_PGDN Page Down Key VK_UP Up Arrow Key VK_DOWN Down Arrow Key VK_LEFT Left Arrow Key VK_RIGHT Right Arrow Key VK_ESCAPE Escape Key VK_TAB Tab Key VK_BACK_SPACE Backspace Key VK_CAPS_LOCK Caps Lock Key VK_NUM_LOCK Num Lock Key VK_ENTER Enter Key VK_F1 s/d VK_F12 Function Key 1 s/d 12 VK_0 s/d VK_9 Numeric Key 0 s/d 9 VK_A s/d VK_Z Letter Key A s/d Z Perhatikan Contoh berikut: import java.awt.*; import java.awt.event.*; import java.applet.*; public class KeyboardEventDemo extends Applet { public static void main(String [] args) { Frame f = new MyFrameWithExitHandling(); f.setLayout(new BorderLayout()); KeyboardEventDemo ked = new KeyboardEventDemo(); ked.init(); ked.start(); f.add(“Center”,ked); f.setSize(300,300); f.setVisible(true); } public void init() { Canvas c = new KeyboardCanvas(); c.setBackground(Color.yellow); setLayout(new BorderLayout()); add(“Center”,c); c.requestFocus(); } class KeyboardCanvas extends Canvas implements KeyListener { private int x = 100; private int y = 100; private char keyChar = ‘A’; Bahasa Pemrograman I Graphics Programming II
  • 25. Pertemuan 6 Halaman 25/25 public KeyboardCanvas() { addKeyListener(this); } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } public void keyPressed(KeyEvent e) { switch(e.getKeyCode()) { case e.VK_DOWN: y+=10;break; case e.VK_UP: y-=10;break; case e.VK_LEFT: x-=10;break; case e.VK_RIGHT: x+=10;break; default : keyChar = e.getKeyChar(); } repaint(); } public void paint(Graphics g) { g.setFont(new Font(“TimesRoman”,Font.PLAIN,24)); g.drawString(String.valueOf(keyChar),x,y); } } } Bahasa Pemrograman I Graphics Programming II