You are on page 1of 25

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() public Button(String s)

membuat Button dengan label kosong membuat Button dengan label yang ditentukan oleh variabel s

Common Used Method: public String getLabel() public void setLabel(String s) Event : Event Name ActionEvent

untuk mengambil atau mereset label pada button untuk melakukan set pada label button

Cause 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() public Label(String s) public Label(String s, int alignment)

membuat Label kosong dengan pengaturan rata kiri membuat Label dengan teks variabel s dan rata kiri membuat Label dengan teks variabel s dengan pengaturan rata yang dapat diatur (Label.CENTER, Label.LEFT, Label.RIGHT)

Common Used Method: public String getText() public void setText(String s) public getAlignment() public setAligntment(int alignment) Contoh : Pada LabelTest.java
import java.awt.*; import java.awt.event.*;

untuk mengambil atau mereset label pada button untuk melakukan set pada label button untuk menngambil tipe pengaturan rata untuk melakukan set pengaturan rata

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) public TextField(String s) public TextField(String s, int width) Common Used Method: public String getText() public void setText(String s) public setEditable(boolean editable) public void setColumns(int width) Event : Event Name ActionEvent ItemEvent 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

membuat TextField kosong dengan panjang kolom ditentukan membuat TextField dengan menampilkan String s membuat TextField dengan menampilkan String s dan panjang kolom yang ditentukan

untuk mengambil nilai teks pada TextField untuk melakukan set teks pada TextField untuk mengatur TextField bisa diedit atau tidak bisa diedit (secara default bernilai true) untuk mengatur panjang kolom dari TextField

Cause menekan tombol enter mengganti nilai / isi dari TextField

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 columns) public TextArea(String s, int rows, int columns) public TextArea(String s, int rows, int columns, int scrollbars)

Membuat TextArea dengan baris dan kolom yang ditentukan Membuat TextArea dengan menampilkan String s dan menentukan baris dan kolomnya. Membuat TextArea dengan menampilkan String s ,menentukan baris dan kolomnya dan mengatur 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 pos) public void append(String s) public void replaceRange(String s,int start, int end) public int getRows() public synchronized String getText() public synchronized String
Bahasa Pemrograman I

untuk menambah String s pada TextArea dengan posisi awal pos untuk menambah String s pada TextArea untuk mengganti nilai TextArea dengan nilai s pada posisi awal start dan posisi akhir end untuk mengembalikan jumlah baris pada TextArea untuk mengambil text pada TextArea untuk mengambil Text yang sedang dipilih pada
Graphics Programming II

Pertemuan 6

Halaman 6/6

getSelectedText() Contoh : Pada TextArea.java


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

TextArea

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() Common Used Method: public void add(String s) public String getItem(int index)
Bahasa Pemrograman I

membuat Choice object

menambahkan pilihan s pada Choice mengambil item yang pada Choice dengan posisi index
Graphics Programming II

Pertemuan 6

Halaman 7/7

public int getSelectedIndex() public String getSelectedItem() public void Select(int index) public void select(String str) Contoh :
import java.awt.*; import java.awt.event.*;

mengambil posisi index aktif pada Choice mengambil String aktif pada Choice melakukan set choice dengan pilihan pada posisi index melakukan set choice dengan pilihan sesusai str

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) public String getItem(int row) public int getSelectedIndex() public String getSelectedItem() public String [] getSelectedItems() 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");

menambahkan s pada List mengambil Item pada baris row mengambil index yang sedang dipilih mengambil Item yang sedang dipilih mengambil beberapa item yang sedang dipilih

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) public CheckBox() public CheckBox(String label, boolean state)

membuat CheckBox dengan default teks label membuat CheckBox tanpa label membuat CheckBox dengan label dan state yang ditentukan

Common Used Method: public boolean getState() public void setState(boolean state) public setCheckBoxGroup(CheckBoxGroup g)

mengambil State dari CheckBox melakukan set State dari CheckBox 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 getSelectedCheckBox() public synchronized void setSelectedCheckBox(CheckBox box) Contoh:
import java.awt.*; import java.awt.event.*;

mengambil CheckBox yang sedang aktif melakukan set CheckBox yang akan dipilih

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 title, boolean modal) public Dialog(Frame parent) public Dialog(Frame parent, boolean modal) public Dialog(Frame parent, String title) Common Used Method: public void setModal(boolean b) public void setTitle(String title) public show() 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(); }

membuat Dialog dengan judul dan modal state yang dapat diset membuat Dialog membuat Dialog dengan modal state yang dapat diset membuat Dialog dengan judul yang dapat diset

merubah state dari Dialog Modal merubah judul dari Dialog menampilkan Dialog

} 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 public public public public public } } void void void void void void windowOpened(WindowEvent e) {} windowClosed(WindowEvent e) {} windowActivated(WindowEvent e) {} windowDeactivated(WindowEvent e) {} windowIconified(WindowEvent e) {} 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) public int getMenuCount() public void remove(MenuComponent m) public Menu getMenu(int i)

menambahkan Menu pada MenuBar mengambil jumlah Menu pada MenuBar membuang Menu dari MenuBar 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 add(MenuItem mi) public void add(String label) public void addSeparator()
Bahasa Pemrograman I

menambahkan MenuItem pada Menu

menambahkan pemisah
Graphics Programming II

Pertemuan 6

Halaman 14/14

public int getItemCount() public void remove(MenuComponent item) remove(int index) removeAll() 3. MenuItem Constructor: public MenuItem() MenuItem(String label) Common Used Method: public synchronized setEnabled(boolean b) public synchronized setLabel( String label) Contoh: Pada MenuTest.java
import java.awt.*; import java.awt.event.*;

mengambil jumlah MenuItem pada Menu menghapus MenuItem dari Menu

menghapus MenuItem melalui index menghapus semua MenuItem

membuat MenuItem membuat MenuItem dengan label

void melakukan set aktif/non aktif MenuItem void merubah label dari MenuItem

suatu

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 public public public public public } } void void void void void void windowOpened(WindowEvent e) {} windowClosed(WindowEvent e) {} windowActivated(WindowEvent e) {} windowDeactivated(WindowEvent e) {} windowIconified(WindowEvent e) {} 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() public Scrollbar(int orientation) public Scrollbar(int orientation, int value, int visible, int minimum, int maximum) Common Used Method: public int getValue() public void setMaximum(int newMaximum) public void setMinimum(int newMinimum) public void setOrientation(int orientation) setUnitIncrement(int v)

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

mengambil harga terakhir dari Scrollbar melakukan set range Maksimum melakukan set range Minimum melakukan set mode orientasi 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
Graphics Programming II

Bahasa Pemrograman I

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
Graphics Programming II

Bahasa Pemrograman I

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 VK_HOME VK_END VK_PGUP VK_PGDN VK_UP VK_DOWN VK_LEFT VK_RIGHT VK_ESCAPE VK_TAB VK_BACK_SPACE VK_CAPS_LOCK VK_NUM_LOCK VK_ENTER VK_F1 s/d VK_F12 VK_0 s/d VK_9 VK_A s/d VK_Z

Description Home Key End Key Page Up Key Page Down Key Up Arrow Key Down Arrow Key Left Arrow Key Right Arrow Key Escape Key Tab Key Backspace Key Caps Lock Key Num Lock Key Enter Key Function Key 1 s/d 12 Numeric Key 0 s/d 9 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

You might also like