Java6
Upcoming SlideShare
Loading in...5
×
 

Java6

on

  • 1,606 views

 

Statistics

Views

Total Views
1,606
Slideshare-icon Views on SlideShare
1,606
Embed Views
0

Actions

Likes
0
Downloads
47
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Java6 Java6 Document Transcript

    • 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