Dokumen tersebut membahas berbagai komponen GUI penting dalam membangun antarmuka pengguna grafis (GUI) menggunakan Java, seperti tombol, label, teks field, area teks, pilihan, daftar, kotak centang, dan dialog. Komponen-komponen tersebut memiliki berbagai konstruktor dan metode yang umum digunakan untuk menangani perilaku dan tampilannya. Contoh kode juga disajikan untuk mendemonstrasikan penggunaan masing-masing
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