• Tidak ada hasil yang ditemukan

Bahasa Pemrograman 3

N/A
N/A
Protected

Academic year: 2021

Membagikan "Bahasa Pemrograman 3"

Copied!
109
0
0

Teks penuh

(1)

BAHASA PEMROGRAMAN JAVA

(2)
(3)

PENDAHULUAN

Buku Bahasa Pemrograman JAVA-GUI, yang ada dihadapan anda sekarang,

menggunakan bahasa pemrograman java standard J2SDK yang dikembangkan oleh

Sun Microsystem (www.sun.com).

Selain itu, buku ini disusun menggunakan konsep praktik langsung (

learning by

doing) yang dilengkapi pembahasan contoh program dengan menggunakan beberapa

objek java, lengkap dengan pembahasannya.

Harapannya, buku ini bisa mengantarkan pembaca mampu mengembangkan

program GUI (

Grafik User Interface

) layaknya form dan objek lainnya. Sekaligus

dapat digunakan dalam form, grafik 2 (dua) dimensi, event handling, error handling,

file akses, multithread, dan database (mysql).

Dikarenakan buku ini diperuntukkan pada pembaca yang sudah mengenal

dasar-dasar algoritma dan dasar-dasar-dasar-dasar bahasa pemrograman java.

Pembahasannya terdiri dari 14 (empat belas) bab, yaitu :

BAB I

Pengenalan GUI dan cara menggunakan Jframe.

BAB II

Penggunaan grafik 2D pada Jframe.

BAB III

Contoh program

input

mahasiswa menggunakan objek JLabel, JTextField,

JCheckBox, JRadioButton, JComboBox, JButton , Action Listener Dan Layout

(FlowLayout dan Border Layout).

BAB IV

Merubah contoh program

input

pada bab III dengan merubah objek JCheck box

dengan JList

Multi Selected

, dan objek JRadioButton dengan JList

Single

Selected

. Sedangkan layout yang digunakan adalah Border Layout

BAB V

Bab ini menerangkan bagaimana menggunakan peralatan mouse dan keyboard

dengan fasilitas java objek MouseMotionListener, MouseListener, KeyListener,

dan ActionListener.

BAB VI

Membuat program konversi susu menggunakan objek JSlider

BAB VII

Membuat program editor berita menggunakan objek JMenuBar, JMenu,

JPopupMenu, JMenuItem, JTextArea, dan Box

BAB VIII

Mengenal penggunaan JInternalFrame

BAB IX

Mengenal penggunaan tampilan group beraupa tab dengan objek JTabbedPane

BAB X

Mengenal model desain tampilan pada standar java

BAB XI

Bagaimana cara mengatasi kesalahan program atau yang kita kenal dengan Error

Exception.

(4)

BAB XII

Thread

BAB XIII

Mengenal cara mengakses file dan mengembangkan program pada bab VII

menggunakan fasilitas akses file.

BAB XIV

(5)

BAB I

GUI (Grafik User Interface)

Pertanyaan mendasar mengenai penggunaan tampilan atau GUI dalam program

adalah seberapa penting hal itu dilakukan. Bukankah program sudah berjalan sesuai

dengan permintaan?

Pertanyaan itu biasanya menghantui setiap pengembang program (

programmer

)

pada saat membuat program.

Tentu saja kepentingan penggunaan tampilan akan berpulang pada penempatan

program itu sendiri.

Untuk program yang hanya ditempatkan pada sisi komputer server yang jarang

berinteraksi dengan pengguna, maka fungsi dasar program dirasa cukup memadai.

Tetapi apabila program tersebut diperkirakan akan banyak berinteraksi dengan

pengguna, maka ada baiknya jika program menggunakan tampilan.

Beberapa alasan bahwa program harus menggunakan tampilan, yaitu

-

Dengan tampilan, program akan nampak jauh lebih menarik

-

Interaktif

-

User Friendly

atau mudah dalam penggunaannya

-

Dapat berinteraksi dengan peralatan seperti mouse, joystick dan peralatan lainnya.

Jika pengembang program peduli terhadap tampilan, biasanya program yang

dihasilkan akan lebih diterima oleh pengguna. Bahkan sering karena tampilan yang

menarik, program itu memiliki nilai yang lebih tinggi dibandingkan dengan program

lain dengan tampilan yang sederhana.

Saat ini, terdapat beberapa model Frame GUI yang dapat digunakan saat

mengembangkan program java yaitu java.awt.* dan javax.swing.*.

Didalam buku ini, untuk tampilan GUI, penulis menggunakan javax.swing.*,

yaitu JFrame, Jlabel, JTextField, JRadioButton, JCheckBox, JComboBox, JTextArea,

JSlider, JMenuBar, JPopUpMenu, JMenuItem, dan

tools

lainnya.

JFRAME

Saat kita membuat program java GUI, yang pertama kali kita harus kuasai adalah

penggunaan JFrame. JFrame digunakan untuk mendesain model tampilan yang

didalamnya dapat kita tempatkan komponen-komponen lainnya.

Contoh penggunaan tampilan frame pada program java :

//program pertama

//Tidak Menggunakan Construktor import javax.swing.JFrame; class frame1{

public static void main(String args []){ JFrame tampil = new JFrame();

tampil.show(); } }

Atau

//program kedua //menggunakan konstruktor import javax.swing.*;

class frame21 extends JFrame{ frame21(){ //construktor show();

(6)

super("Universitas Budi Luhur"); this.setSize(300,200) setLocation (10,100); setResizable(false); } } class frame22{

public static void main(String args[]){ new frame21();

} }

Apabila kedua program tersebut dikompilasi dan dijalankan maka akan terdapat

tampilan seperti dibawah ini :

Gambar 1. JFrame

Untuk membuat frame dengan tulisan “Universitas Budi Luhur”, pada posisi x =

10 dan Y = 100, lebar = 300, tinggi = 200,

Resizable

false

, dan akan terhapus di

alokasi memori setelah aplikasi di tutup seperti pada gambar 2 sebagai berikut :

(7)

//program ketiga import javax.swing.*;

class frame61 extends JFrame{ frame61(){

super("Universitas Budi Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation (10,100); this.setSize(300,200); setResizable(false); show(); } } class frame62{

public static void main (String args[]){ new frame61();

} }

(8)

BAB II

GRAFIK DUA DIMENSI (2D) PADA JFRAME

Grafik dua dimensi (2D) menggunakan

class

yang terdapat pada java.awt.*, yaitu

Canvas. Komponen Canvas tersebut berbentuk kotak kosong pada layar. Didalam

Canvas tersebut dapat kita gunakan sebagai media gambar 2 (dua) dimensi.

Penggunaan Canvas harus dibarengi dengan sub class paint sebagai media gambar

yang berupa perintah.

Cara menggabungkan penggunaan Canvas dan Jframe adalah sebagai berikut :

Gambar 3. Grafik dua Dimensi (2D) Dan JFRAME

//program ke empat import javax.swing.*; import java.awt.*; //Class Canvas

class grap1 extends Canvas{

public void paint (Graphics g){ //(x,y,width,height) g.drawRect(1,5,50,20); g.drawLine(35,50,100,70);

//(x,y,width,height,arcwidth,archeight g.drawRoundRect(1,50,30,40,5,100); g.setColor(Color.YELLOW); //set warna g.drawOval(110,50,40,30);

g.setFont(new Font("Tahoma",Font.ITALIC,20)); g.drawString("9511500134",80,15);

g.setColor(Color.BLUE); //set warna g.fillRect(1,110,30,20);

g.fillOval(50,110,30,20); }

}

//Class frame

class grap11 extends JFrame{

private Container konten=new Container(); private grap1 duaD =new grap1();

(9)

super("Universitas Budi Luhur"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(10,100); this.setSize(250,200); konten= getContentPane(); konten.add(duaD); show(); }

public static void main(String args[]){ new grap11();

} }

Contoh tampilan pada gambar ke 3, terdapat 2 (dua) class, yaitu

-

class grap1 extends Canvas

-

class grap11 extends JFrame

Pada class pertama, class yang bernama grap1, merupakan turunan dari objek

Canvas yang berasal dari java.awt yang digunakan untuk melakukan design grafik

2D.

Adapun struktur dasar dari canvas bersifat abstrak dengan bentuk dasar

pemgrogramannya adalah sebagai berikut :

[public|private] class <nameclass> extends Canvas{ public void paint(Graphics <objectname>){ …..

} }

Perumpamaan membuat gambar 2D menggunakan objek Canvas adalah seperti

menggambar pada sebuah kertas kosong dengan pensil gambar. Hanya saja

penggunaan objek Canvas menggunakan posisi piksel pada frame.

Posisi 0 pada horizontal (X=0) dan posisi 0 pada vertikal (Y=0), menunjukan

posisi tersebut berada pada posisi ujung paling kiri dan paling atas dari frame.

Jika X > 0 maka posisi berada ke arah kanan dari frame, sedangkan jika Y > 0

maka posisi berada ke arah bawah dari frame.

Banyak objek yang dapat digunakan untuk menggambar 2D pada Canvas, yaitu

bulat, kotak, garis dan lain-lain.

Pada gambar 3 terdapat beberapa objek, yaitu :

-

Kotak

drawRect (x,y,width, height)

-

Kotak dengan bundaran di pinggir

drawRoundRect (x, y, width, height, arcwidth, archeight)

-

Kotak dengan warna didalamnya

fillRect (x,y,width,height)

-

Penggunaan Font

setFont(new Font("<Model Font>", <STANDAR|BOLD|ITALIC>, <Size>))

-

String

drawstring(“<tulisan>”,x,y)

-

Garis

drawLine(x,y,width,height)

-

Bundar

drawOval(x,y,width,height)

(10)

fillOval(x,y,width, height)

-

Pewarnaan

setColor(<color>)

Ketika hendak menggunakan Class pertama pada class kedua (frame) perlu

menggunakan perintah :

private grap1 duaD =new grap1();

Kemudian class pertama tersebut ditampilkan pada JFrame dengan menggunakan

perintah :

konten.add(duaD);

Latihan 1 :

Buatlah program 2 (dua) dimensi seperti pada gambar 4 dibawah ini

(11)

BAB III

JLabel, JTextField, JCheckBox, JRadioButton,

JComboBox, JButton , Action Listener Dan Layout

(FlowLayout dan Border Layout)

Objek GUI yang dapat digunakan pada bahasa pemrograman java standard,

khususnya javax.swing.*, sangat banyak dan fleksibel.

Contoh pada gambar 5, menunjukan form

input

-an mahasiswa yang menggunakan

beberapa objek javax.swing.*, yaitu : JLabel, JTextField, JCheckBox, JRadioButton,

JComboBox dan JButton. Ditambah dengan penggunaan Action Listener dari

java.awt.event.* dan model-model tampilan (FlowLayout dan GridLayout )

Gambar 5. Input Data Mahasiswa

Sebelum membuat program, sebaiknya kita mengenal masing-masing objek satu

persatu, yaitu :

JLabel

Berfungsi untuk menampilkan tulisan atau gambar ikon pada frame

Constructor

JLabel

()

Membuat

JLabel

tanpa gambar dan tanpa tulisan didalamnya

JLabel

(Icon image)

Membuat

JLabel

dengan gambar.

JLabel

(Icon image, int horizontalAlignment)

Membuat

JLabel

dengan Gambar dan model

horizontal alignment

(

LEFT

,

CENTER

,

RIGHT

,

LEADING

atau

TRAILING)

JLabel

(String text)

Membuat

JLabel

dengan isi teks didalamnya.

JLabel

(String text, Icon icon, int horizontalAlignment)

Membuat

JLabel

dengan isi text didalamnya, gambar dan

horizontal

JTextField JCheckBox JRadioButton JLabel JComboBox JButton

(12)

alignment

(

LEFT

,

CENTER

,

RIGHT

,

LEADING

atau

TRAILING)

.

JLabel

(String text, int horizontalAlignment)

Membuat

JLabel

dengan isi text didalamnya dan

horizontal alignment

(

LEFT

,

CENTER

,

RIGHT

,

LEADING

atau

TRAILING).

Beberapa

Method

yang harus diketahui

String

getText

()

Mendapatkan nilai string pada

JLabel

void

setText

(String text)

Memberikan nilai string pada

JLabel

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/label.html

JTextField

Berfungsi sebagai media edit

single

teks

Constructor

JTextField

()

Membuat

JTextField

.

JTextField

(Document doc, String text, int columns)

Membuat

JTextField

yang menggunakan model text, isi dari

JTextField

dan kolom.

JTextField

(int columns)

Membuat

JTextField

dengan model kolom.

JTextField

(String text)

Membuat

JTextField

dengan isi teks didalamnya.

JTextField

(String text, int columns)

Membuat

JTextField

dengan isi teks didalamnya dan kolom.

Beberapa

Method

yang harus diketahui

void

addActionListener

(ActionListener l)

Memberikan

action listener

pada JTextField

String

getText

()

Mendapatkan nilai string dari

JTextField

.

void

setFont

(Font f)

Merubah

Font

pada

JTextField

void

setText

(String Text)

(13)

Memberikan nilai string pada

JTextField

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/textfield.html

JCheckBox

Digunakan untuk pilihan yang dapat lebih dari satu pilihan

Constructor

JCheckBox

()

Membuat

JCheckBox

dalam posisi tidak tercentang/terpilih tanpa text dan ikon.

JCheckBox

(

Action

a)

Creates a check box where properties are taken from the Action supplied.

JCheckBox

(Icon icon)

Membuat

JCheckBox

dengan posisi tidak tercentang/terpilih dengan tampilan

gambar ikon.

JCheckBox

(Icon icon, boolean selected)

Membuat

JCheckBox

dengan tampilan gambar ikon dan posisi tercentang/terpilih

tergantung dengan parameter Boolean yang diberikan.

JCheckBox

(String text)

Membuat

JCheckBox

dengan posisi tidak tercentang/terpilih dengan teks.

JCheckBox

(String text, boolean selected)

Membuat

JCheckBox

dengan isian berupa teks dan posisi tercentang/terpilih

disesuaikan dengan parameter Boolean yang diberikan.

JCheckBox

(String text, Icon icon)

Membuat

JCheckBox

dengan posisi tidak tercentang dengan teks dan tampilan

gambar ikon.

JCheckBox

(String text, Icon icon, boolean selected)

Membuat

JCheckBox

dengan teks dengan tampilan gambar ikon dan posisi

(14)

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/button.html

JRadioButton

Digunakan untuk memilih satu dari beberapa pilihan.

Constructor

JRadioButton

()

Membuat

JRadioButton

dengan posisi tidak tercentang/terpilih dan tanpa isian

teks.

JRadioButton

(Icon icon)

Membuat

JRadioButton

dengan posisi tidak tercentang/terpilih dengan tampilan

gambar dengantanpa teks.

JRadioButton

(Icon icon, boolean selected)

Membuat

JRadioButton

dengan gambar, tanpa teks dan posisi tercentang/terpilih

sesuai dengan parameter Boolean yang diberikan.

JRadioButton

(String text)

Membuat

JRadioButton

dengan posisi tidak tercentang/terpilih dengan teks.

JRadioButton

(String text, boolean selected)

Membuat

JRadioButton

dengan teks dan posisi tercentang/terpilih sesuai dengan

parameter boolean yang diberikan.

JRadioButton

(String text, Icon icon)

Membuat

JRadioButton

dengan teks dan gambar ikon dengan posisi tidak

tercentang/terpilih.

JRadioButton

(String text, Icon icon, boolean selected)

Membuat

JRadioButton

dengan teks, gambar ikon dan posisi tercentang/terpilih

disesuaikan dengan parameter Boolean yang diberikan.

Beberapa

Method

yang harus diketahui

Boolean

isSelected

()

Mendapatkan nilai dari

JCheckBox

. Jika tercentang/terpilih

maka nilainya adalah true, apabila tidak tercentang nilainya adalah

false.

void

setSelected

()

(15)

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/button.html

Saat penggunaan

JRadioButton

harus menggunakan

ButtonGroup

untuk

menggabungkan

JRadioButton

.

ButtonGrop

Berfungsi sebagai penggabungan komponen pada java

Constructor

ButtonGroup

()

Membuat

ButtonGroup

Beberapa

Method

yang harus diketaui

void

add

(AbstractButton b)

Menambah button pada group.

void

remove

(AbstractButton b)

Menghapus button dari the group.

JComboBox

Berfungsi untuk memilih satu dari beberapa pilihan dengan tampilan list dan dapat

diedit sesuai dengan kebutuhan

Constructor

JComboBox

()

Membuat

JComboBox

.

JComboBox

(ComboBoxModel aModel)

Membuat

JComboBox

dengan

ComboBoxModel

yang diinginkan

(

DefaultComboBoxModel

,

MetalFileChooserUI.DirectoryComboBoxModel

,

Beberapa

Method

yang harus diketahui

Boolean

isSelected

()

Mendapatkan nilai dari

JRadioButton

. Jika tercentang/terpilih

maka nilainya adalah true, apabila tidak tercentang nilainya adalah false.

void

setSelected

()

(16)

MetalFileChooserUI.FilterComboBoxModel

).

JComboBox

(Object[] items)

Membuat

JComboBox

dengan isian berupa array.

JComboBox

(Vector items)

(17)

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html

JButton

Mengimplementasikan penggunaan “push button”

Beberapa

Method

yang harus diketahui

Void

addItem

(Object anObject)

Menambah Item pada

JComboBox

.

Int

getItemCount

()

Mendapat nilai jumlah item pada

JComboBox

.

Object

getItemAt

(int index)

Mendapatkan nilai dari item dengan Index yang ditentukan.

int

getMaximumRowCount

()

Mendapatkan jumlah nilai maksimum list pada

JComboBox

int

getSelectedIndex

()

Mendapatkan nilai item ke berapa (index) pada

JComboBox

.

Object

getSelectedItem

()

Mendapatkan isi dari

JComboBox

.

boolean

isEditable

()

Mendapatkan nilai true atau false dari status

editable

JComboBox

.

void

removeAllItems

()

Menghapus semua item pada

JComboBox

.

void

removeItem

(Object anObject)

Menghapus salah satu item pada

JComboBox

.

void

setEditable

(boolean aFlag)

Merubah status editable pada

JComboBox

.

void

setEnabled

(boolean b)

Mengaktifkan atau menon aktifkan

JComboBox

.

void

setMaximumRowCount

(int count)

Menampilkan maximum item yang dapat ditampilkan

JComboBox

.

void

setSelectedIndex

(int anIndex)

merubah pointer

Index

.

void

setSelectedItem

(Object anObject)

(18)

Constructor

JButton

()

Membuat tombol tanpa teks dan gambar ikon.

JButton

(Icon icon)

Membuat tombol dengan gambar ikon.

JButton

(String text)

Membuat tombol dengan tampilan teks.

JButton

(String text, Icon icon)

Membuat tombol dengan tampilan teks dan gambar ikon.

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/button.html

Dalam tampilan layar pada gambar 5, apabila tombol “Tampilkan” ditekan maka

akan tampil isi data dari form. Pada pemrograman java, fungsi tersebut dapat

menggunakan

method

addActionListener

dan

actionPerformed

.

Method

void

actionPerformed

(ActionEvent e)

Mendeteksi Action yang diberikan.

Rancangan tampilan dibuat dengan menggunakan layout FlowLayout dan

GridLayout. Dalam layout FlowLayout terdapat tiga jenis layout, yaitu

FlowLayout.LEFT untuk posisi kiri, FlowLayout.CENTER untuk posisi tengah dan

FlowLayout.RIGHT untuk posisi kanan

LEFT

CENTER

RIGHT

Sedangkan GridLayout disesuaikan dengan parameter yang diberikan. Sebagai

contoh, GridLayout(6,2), berarti baris dari grid adalah 6 dan kolomnya sebanyak 2.

Untuk lebih jelasnya pada gambar 5 adalah sebagai berikut :

lblNim

txtNim

lblNama

txtNama

lblSertifikat

chSD

chSMP

chSMA

lblJurusan

rdTI

rdMI

rdAK

rdTK

lblKampus

cmbKampus

(19)

Terdapat satu Container dengan layout FlowLayout.CENTER, yang berarti

Container selalu berada di tengah Frame. Dengan 3 (tiga) panel, yaitu :

-

panel1, dengan layout GridLayout(6,2) untuk penempatan lblNim, txtNim,

lblNama, txtNama, lblSertifikat, panel2, lblJurusan, panel3, lblKampus,

cmbKampus, cmdSave, dan cmdExit

-

panel2, dengan layout GridLayout(1,3) untuk penempatan chSD, chSMP, dan

chSMA

-

panel3, dengan layout GridLayout(1,4), untuk penempatan rdTI, rdMI, rdAK, dan

rdTKD

Setelah mengenal objek yang akan digunakan, maka kita dapat menganalisa

program untuk tampilan pada layer seperti pada gambar 5

//program ke lima import javax.swing.*; import javax.swing.event.*; import java.awt.*;

import java.awt.event.*; class frame23 extends JFrame{ //deklarasi

private Container konten = new Container(); private JPanel panel1 = new JPanel(); private JLabel lblNim = new JLabel();

private JTextField txtNim = new JTextField(10); private JLabel lblNama = new JLabel();

private JTextField txtNama = new JTextField(20); private JLabel lblSertifikat = new JLabel(); private JPanel panel2 = new JPanel();

private JCheckBox chSD = new JCheckBox("SD"); private JCheckBox chSMP = new JCheckBox("SMP"); private JCheckBox chSMA = new JCheckBox("SMA"); private JPanel panel3 = new JPanel();

private JLabel lblJurusan = new JLabel();

private ButtonGroup grpJurusan = new ButtonGroup(); private JRadioButton rdTI = new JRadioButton("TI"); private JRadioButton rdMI = new JRadioButton("MI"); private JRadioButton rdAK = new JRadioButton("AK"); private JRadioButton rdTK = new JRadioButton("TK"); private JLabel lblKampus = new JLabel();

String sKampus[] = {"Cempaka Putih","Cileduk","Roxy","Salemba"}; private JComboBox cmbKampus = new JComboBox(sKampus);

private JButton cmdSave = new JButton("Tampilkan"); private JButton cmdEnd = new JButton("Selesai"); frame23(){

super("Universitas Budi Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(10,100); this.setSize(500,200); konten=getContentPane(); konten.setLayout(new FlowLayout(FlowLayout.CENTER)); lblNim.setText("NIM"); lblNama.setText("NAMA"); lblSertifikat.setText("Sertifikat"); lblJurusan.setText("Jurusan"); lblKampus.setText("Kampus"); panel1.setLayout(new GridLayout(6,2)); panel1.add(lblNim);

(20)

panel1.add(txtNim); panel1.add(lblNama); panel1.add(txtNama); panel1.add(lblSertifikat); panel2.setLayout(new GridLayout(1,3)); panel2.add(chSD); panel2.add(chSMP); panel2.add(chSMA); panel1.add(panel2); grpJurusan.add(rdTI); grpJurusan.add(rdMI); grpJurusan.add(rdAK); grpJurusan.add(rdTK); panel3.setLayout(new GridLayout(1,4)); panel3.add(rdTI); panel3.add(rdMI); panel3.add(rdAK); panel3.add(rdTK); panel1.add(lblJurusan); panel1.add(panel3); cmbKampus.setSelectedIndex(1); cmbKampus.setMaximumRowCount(3); panel1.add(lblKampus); panel1.add(cmbKampus);

itemHandler itemHandler = new itemHandler(); panel1.add(cmdSave); cmdSave.addActionListener(itemHandler); panel1.add(cmdEnd); cmdEnd.addActionListener(itemHandler); konten.add(panel1); show(); }

private class itemHandler implements ActionListener{ public void actionPerformed(ActionEvent e){

Object obj=e.getSource(); //mendapatkan nama objek action if(obj==cmdSave){

String sTampil;

sTampil = "NIM : " + txtNim.getText(); sTampil+= "\nNama : " + txtNama.getText(); sTampil+= "\nSertifikat";

if (chSD.isSelected()) sTampil+= ", SD"; if (chSMP.isSelected()) sTampil+= ", SMP"; if (chSMA.isSelected()) sTampil+= ", SMA"; sTampil+= "\nJurusan";

if (rdTI.isSelected()) sTampil+= ", TI"; else if(rdMI.isSelected()) sTampil+=",MI"; else if(rdAK.isSelected()) sTampil+=",AK"; else if(rdTK.isSelected()) sTampil+=",TK"; else sTampil+=", Ngak Jelas";

sTampil+="\nKampus,"; sTampil+=cmbKampus.getItemAt(

cmbKampus.getSelectedIndex()); JOptionPane.showMessageDialog(null, sTampil , "HASIL", JOptionPane.INFORMATION_MESSAGE);

}

else {System.exit (0);} }

}

(21)

new frame23(); }

(22)

BAB IV

JList (

Single Selected

dan

Multi Selected

) DAN

LAYOUT (Border Layout)

Gambar 6 adalah merupakan model form yang mirip seperti pada gambar 5

dimana JCheckBox diganti dengan JList model

multiselection

dan JRadioButton

diganti dengan JList model s

ingleselection

.

Gambar 6. Form Input Mahasiswa (JLIST)

JLIST

Membuat tampilan data list

Constructor

JList

()

Membuat

JList

standar

JList

(ListModel dataModel)

Membuat

JList

yang menampilkan elemen dengan

non-

null

model

.

JList

(Object[] listData)

Membuat

JList

yang menampilkan elemen array.

JList

(Vector listData)

Membuat

JList

yang menampilkan elemen dengan model

Vector

.

JList

Multiple Selection

JList

(23)

Beberapa

Method

yang harus diketahui

int

getSelectedIndex

()

Mendapatkan nilai Index jika tidak ada yang terpilih maka

Jlist akan memberikan nilai -1.

Object

getSelectedValue

()

Mendapatkan nilai terpilih jika tidak ada yang terpilih maka

Jlist

akan memberikan nilai

null

.

Object[]

getSelectedValues

()

Mendapatkan nilai dalam bentuk Array dari sel terpilih.

boolean

isSelectedIndex

(int index)

Mendapatkan nilai true apabila index terpilih dan akan

mengembalikan nilai false jika tidak terpilih.

boolean

isSelectionEmpty

()

Mendapatkan nilai true apabila tidak ada sel yang terpilih.

void

setSelectedIndex

(int index)

Mengaktifkan sebuah sel .

void

setSelectedValue

(Object anObject,

boolean shouldScroll)

Mengaktifkan objek pada list.

void

setSelectionBackground

(Color selectionBackground)

Memberikan warna background.

void

setSelectionForeground

(Color selectionForeground)

Memberikan warna foreground.

void

setSelectionMode

(int selectionMode)

Merubah model

Jlist

menjadi

single selection

<object>.setSelectionMode(ListSelectionModel.SINGLE_SE

LECTION)

atau

multiple selection

.

<object>.setSelectionMode(ListSelectionModel.MULTIPLE_

INTERVAL_SELECTION)

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/list.html

dalam rancangan tampilan pada gambar 6, kita menggunakan layout FlowLayout,

Gridlayout dan BorderLayout.

Perlu diingat bahwa layout FlowLayout dan GridLayout telah diterangkan

sebelumnya, khususnya dalam contoh pada gambar 5.

Sedangkan ilustrasi dari penggunaan layout BorderLayout dapat dilihat dalam

bentuk berikut :

(24)

NORTH

WEST

CENTER

EAST

SOUTH

Layout BorderLayout menggunakan arah mata angin sebagai patokan, misalkan :

-

North, berarti objek berada pada posisi atas.

-

West, berarti objek berada pada posisi kiri.

-

Center, berarti objek berada pada tengah.

-

East, berarti objek berada pada posisi kanan.

-

South, berarti objek berada pada posisi bawah.

Untuk lebih jelasnya rancangan tampilan pada gambar 6 adalah sebagai berikut :

lblNim

txtNim

lblNama

txtNama

lblSertifikat

lstSertifikat

lblJurusan

lstJurusan

lblKampus

cmbKampus

cmdSave

cmdExit

Terdapat 1(satu) Container dengan model FlowLayout.CENTER dengan jumlah

panel sebanyak 4 (empat) panel :

-

panel1, dengan model layout GridLayout(2,2) untuk penempatan lblNim, txtNim,

lblNama dan txtNama

-

panel2, dengan model layout GridLayout(2,2) untuk penempatan lblSertifikat,

lstSertifikat, lblJurusan, dan lstJurusan

-

panel3, dengan model layout GridLayout(2,2) untuk penempatan lblKampus,

cmbKampus, btnSave, dan btnExit

-

panel4, dengan model BorderLayout. Dimana pada posisi NORTH untuk

penempatan panel1, posisi CENTER untuk penempatan panel2, dan posisi

SOUTH untuk penempatan panel3

Contoh program java untuk gambar 6 :

//program ke enam import javax.swing.*; import javax.swing.event.*; import java.awt.*;

(25)

import java.awt.event.*; class frame31 extends JFrame{

private Container konten = new Container(); private JPanel panel1 = new JPanel(); private JLabel lblNim = new JLabel();

private JTextField txtNim = new JTextField(10); private JLabel lblNama = new JLabel();

private JTextField txtNama = new JTextField(20); private JPanel panel2 = new JPanel();

private JLabel lblSertifikat = new JLabel(); String sSertifikat[] = {"SD", "SMP", "SMA"}; private JList lstSertifikat;

private JLabel lblJurusan = new JLabel(); String sJurusan[] = {"TI", "MI", "AK", "TK"}; private JList lstJurusan;

private JPanel panel3 = new JPanel(); private JLabel lblKampus = new JLabel();

String sKampus[] = {"Cempaka Putih","Cileduk","Roxy","Salemba"}; private JComboBox cmbKampus = new JComboBox(sKampus);

private JButton cmdSave = new JButton("Tampilkan"); private JButton cmdEnd = new JButton("Selesai"); private JPanel panel4 = new JPanel();

frame31(){

super("Universitas Budi Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(10,100); this.setSize(500,450); konten=getContentPane(); konten.setLayout(new FlowLayout(FlowLayout.CENTER)); lblNim.setText("NIM"); lblNama.setText("NAMA");

lblSertifikat.setText("Sertifikat (Multiple Selection)"); lblJurusan.setText("Jurusan (Single Selection)");

lblKampus.setText("Kampus"); panel1.setLayout(new GridLayout(2,2)); panel1.add(lblNim); panel1.add(txtNim); panel1.add(lblNama); panel1.add(txtNama); panel2.setLayout(new GridLayout(2,2)); lstSertifikat = new JList(sSertifikat); lstSertifikat.setSelectionMode(

ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); panel2.add(lblSertifikat, BorderLayout.NORTH);

//untuk mengaktifkan scroll menu gunakan JScrollPane panel2.add(new JScrollPane(lstSertifikat));

lstJurusan = new JList(sJurusan); lstJurusan.setSelectionMode( ListSelectionModel.SINGLE_SELECTION); panel2.add(lblJurusan); panel2.add(new JScrollPane(lstJurusan)); panel3.setLayout(new GridLayout(2,2)); cmbKampus.setSelectedIndex(1); cmbKampus.setMaximumRowCount(3);

(26)

panel3.add(lblKampus); panel3.add(cmbKampus);

itemHandler itemHandler = new itemHandler(); panel3.add(cmdSave); cmdSave.addActionListener(itemHandler); panel3.add(cmdEnd); cmdEnd.addActionListener(itemHandler); panel4.setLayout(new BorderLayout()); panel4.add(panel1, BorderLayout.NORTH); panel4.add(panel2, BorderLayout.CENTER); panel4.add(panel3, BorderLayout.SOUTH); konten.add(panel4, BorderLayout.EAST); show(); }

private class itemHandler implements ActionListener{ public void actionPerformed(ActionEvent e){

Object obj=e.getSource(); if(obj==cmdSave){

String sTampil;

sTampil = "NIM : " + txtNim.getText(); sTampil+= "\nNama : " + txtNama.getText(); sTampil+= "\nSertifikat "; if (lstSertifikat.isSelectedIndex(0)) sTampil+=", " + sSertifikat[0]; if (lstSertifikat.isSelectedIndex(1)) sTampil+=", " + sSertifikat[1]; if (lstSertifikat.isSelectedIndex(2)) sTampil+=", " + sSertifikat[2]; sTampil+= "\nJurusan, "; sTampil+= lstJurusan.getSelectedValue(); sTampil+="\nKampus,"; sTampil+=cmbKampus.getItemAt(cmbKampus.getSelectedIndex()); JOptionPane.showMessageDialog(null, sTampil , "HASIL", JOptionPane.INFORMATION_MESSAGE);

}

else {System.exit (0);} }

}

public static void main(String args[]){ new frame31();

} }

(27)

Latihan 2

-

Buatlah tampilan Handphone seperti pada gambar 7 kemudian aktifkan tombol

numerik (*,#,0-9) sehingga dapat tampil pada TextField dibawah ini

Gambar 7. HandPhone

-

Buatlah program konversi suhu celcius, Kelvin dan Farenheit dengan tampilan

seperti pada gambar 8.

(28)

BAB V

MouseMotionListener, MouseListener, KeyListener,

dan ActionListener.

Salah satu keunggulan GUI sehingga sering digunakan pada pemrograman, yaitu

karena dapat berinteraksi dengan media Mouse dan tentu saja Keyboard. Fasilitas

listener juga ada pada objek java.awt.event.*.

Pada pemrograman java, untuk mengenali pergerakan mouse dikenal sebutan

MouseMotionListener

, sedangkan mengenali penggunaan tombol pada mouse

disebut dengan

MouseListener

, sedangkan penggunaan tombol pada keyboard

disebut dengan

KeyListener

.

MouseMotionListener

Mendeteksi pergerakan mouse

Method

void

mouseDragged

(MouseEvent e)

Mouse dengan posisi ditekan kemudian digerakkan.

void

mouseMoved

(MouseEvent e)

Mouse digerakkan tanpa ada tombol yang ditekan.

MouseListener

Mendeteksi tombol mouse yang digunakan

Method

void

mouseClicked

(MouseEvent e)

Mouse di-

click

atau ditekan tombolnya kemudian langsung

dilepaskan.

void

mouseEntered

(MouseEvent e)

Ketika mouse memasuki komponen.

void

mouseExited

(MouseEvent e)

Ketika mouse keluar dari komponen.

void

mousePressed

(MouseEvent e)

Tombol mouse ditekan.

void

mouseReleased

(MouseEvent e)

Tombol mouse dilepaskan

KeyListener

Mendeteksi tombol keyboard yang digunakan

Method

(29)

void

keyPressed

(KeyEvent e)

Tombol keyboard ditekan.

void

keyReleased

(KeyEvent e)

Tombol keyboard dilepas.

void

keyTyped

(KeyEvent e)

Tombol keyboard melakukan pengetikan

ActionListener

Mendeteksi aksi yang diberikan dari komponen..

Method

void

actionPerformed

(ActionEvent e)

Mengetahui

Action

yang dilakukan.

Coba perhatikan program ke tujuh dan ke delapan perbedaannya dan jalankan.

//program ketujuh import javax.swing.*; import java.awt.*; import java.awt.event.*;

class grap22 extends JFrame implements MouseMotionListener, MouseListener, KeyListener {

private Container konten = new Container(); private JLabel label1 = new JLabel(); private JLabel label2 = new JLabel();

private JTextField txtKey = new JTextField(20); private JLabel label3 = new JLabel();

grap22(){

super("Universitas Budi Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(10,100); this.setSize(250,200); konten=getContentPane(); konten.setLayout(new FlowLayout(FlowLayout.CENTER)); label1.setForeground(Color.YELLOW); label1.setText("Mouse Event"); label2.setFont(new Font("Tahoma",Font.BOLD,20)); label2.setForeground(Color.BLUE); label2.setText("Mouse Move"); konten.add(label1); konten.add(label2); konten.add(txtKey); konten.add(label3); label2.setForeground(Color.RED); //contoh event handling

(30)

konten.addMouseListener(this); txtKey.addKeyListener(this); show();

}

//Mouse Motion Listener

public void mouseDragged(MouseEvent e){

label2.setText("Dragged at [" + e.getX()+","+e.getY()+"]"); }

public void mouseMoved(MouseEvent e){

label2.setText("Moved at [" + e.getX()+","+e.getY()+"]"); }

//Mouse Listener

public void mouseReleased(MouseEvent e){ label1.setText("Mouse Released"); }

public void mousePressed(MouseEvent e){ label1.setText("Mouse Pressed"); }

public void mouseExited(MouseEvent e){ label1.setText("Mouse Exited"); }

public void mouseEntered(MouseEvent e){ label1.setText("Mouse Entered"); }

public void mouseClicked(MouseEvent e){ label1.setText("Mouse Clicked"); }

//Key Listener

public void keyTyped(KeyEvent e){

label3.setText(e.getKeyText(e.getKeyCode())); }

public void keyPressed(KeyEvent e){

label3.setText(e.getKeyText(e.getKeyCode())); }

public void keyReleased(KeyEvent e){

label3.setText(e.getKeyText(e.getKeyCode())); }

public static void main(String args[]){ new grap22(); } } //program kedelapan import javax.swing.*; import java.awt.*; import java.awt.event.*; class grap22 extends JFrame{

private Container konten = new Container(); private JLabel label1 = new JLabel(); private JLabel label2 = new JLabel();

private JTextField txtKey = new JTextField(20); private JLabel label3 = new JLabel();

grap22(){

super("Universitas Budi Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(10,100); this.setSize(250,200); konten=getContentPane(); konten.setLayout(new FlowLayout(FlowLayout.CENTER)); label1.setForeground(Color.YELLOW);

(31)

label1.setText("Mouse Event"); label2.setFont(new Font("Tahoma",Font.BOLD,20)); label2.setForeground(Color.BLUE); label2.setText("Mouse Move"); konten.add(label1); konten.add(label2); konten.add(txtKey); konten.add(label3); //contoh event handling

label2.setForeground(Color.RED); konten.addMouseMotionListener( new MouseMotionListener(){

public void mouseDragged(MouseEvent e){ label2.setText("Dragged at [" +

e.getX()+","+e.getY()+"]"); }

public void mouseMoved(MouseEvent e){ label2.setText("Moved at [" + e.getX()+","+e.getY()+"]");} } ); konten.addMouseListener( new MouseListener(){

public void mouseReleased(MouseEvent e){ label1.setText("Mouse Released"); }

public void mousePressed(MouseEvent e){ label1.setText("Mouse Pressed"); }

public void mouseExited(MouseEvent e){ label1.setText("Mouse Exited"); }

public void mouseEntered(MouseEvent e){ label1.setText("Mouse Entered"); }

public void mouseClicked(MouseEvent e) {label1.setText("Mouse Clicked");} }

);

txtKey.addKeyListener( new KeyListener(){

public void keyTyped(KeyEvent e){

label3.setText(e.getKeyText(e.getKeyCode())); }

public void keyPressed(KeyEvent e){

label3.setText(e.getKeyText(e.getKeyCode())); }

public void keyReleased(KeyEvent e){

label3.setText(e.getKeyText(e.getKeyCode())); } } ); show(); }

public static void main(String args[]){ new grap22();

} }

Kedua program tersebut apabila dijalankan mempunyai hasil yang sama (gambar

9) namun model penulisannya berbeda.

(32)

Gambar 9. MouseMotionListener, MouseListener, dan KeyListener

Pada program ke tujuh penggunaan listener, yaitu

MouseMotionListener,

MouseListener

, dan

KeyListener

kita akan menggunakan perintah

implements

,

kemudian pada saat penambahan listener cukup menambahkan kata

this

atau nama

objek

class

seperti pada penggalan program ke enam yang menggunakan listener

ActionListener

.

Sedangkan pada program ke delapan listener ditempatkan pada objek yang

mempunyai

method

listener.

//penggalan program ke enam import javax.swing.*; import javax.swing.event.*; import java.awt.*;

import java.awt.event.*; class frame31 extends JFrame{ …

{ …

itemHandler itemHandler = new itemHandler(); panel3.add(cmdSave); cmdSave.addActionListener(itemHandler); panel3.add(cmdEnd); cmdEnd.addActionListener(itemHandler); … }

private class itemHandler implements ActionListener{ public void actionPerformed(ActionEvent e){

Object obj=e.getSource(); //menangkap nama objek if(obj==cmdSave){ … } else {System.exit (0);} } }

public static void main(String args[]){ new frame31();

} }

(33)

BAB VI

JSlider

Pada bab ini penulis membuat contoh program konversi suhu menggunakan

komponen Jslider. Dengan rumus :

-

Fahrenheit = (Celcius * 1.8) + 32

-

Kelvin = Celcius + 273.15;

JSlider

JSlider digunakan untuk menandakan nilai dengan model

slide

. Nilai tersebut

berupa nilai minimum, nilai maksimum dan nilai-nilai antara serta bertipe data

integer.

Constructor

JSlider

()

Membuat horizontal slider dengan nilai minimum 0 sampai dengan maximum

100 dan dengan nilai aktif 50.

JSlider

(BoundedRangeModel brm)

Membuat horizontal slider menggunakan model BoundedRangeModel.

JSlider

(int orientation)

Membuat slider dengan model oreintasi sesuai dengan parameter input

(0=horizontal||1=vertical) dengan nilai minimum 0 sampai dengan nilai maximum

100 dan nilai aktif 50.

JSlider

(int min, int max)

Membuat horizontal slider menggunakan nilai minimum dan maximum yang

disesuaikan dengan parameter input.

JSlider

(int min, int max, int value)

Membuat horizontal slider dengan menggunakan nilai minmum, maximum,

dan nilai aktif sesuai dengan parameter input.

JSlider

(int orientation, int min, int max, int value)

Membuat slider dengan model orientasi, minimum, maximum, dan nilai aktif

sesuai dengan parameter input.

Beberapa

Method

yang harus diketahui

Int

getMaximum

()

Mendapatkan nilai maximum.

Int

getMinimum

()

Mendapatkan nilai minimum.

(34)

Mendapatkan model model oreintasi slider, apakah

berbentuk vertical atau horizontal.

int

getValue

()

Mendapatkan nilai aktif.

void

setMaximum

(int maximum)

Merubah nilai maximum.

void

setMinimum

(int minimum)

Merubah nilai minimum.

void

setOrientation

(int orientation)

Merubah model oreintasi (1=VERTICAL atau

0=HORIZONTAL).

void

setValue

(int n)

Merubah nilai aktif.

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/slider.html

Gambar 10. Jslider

Gambar 10 merupakan bentuk program lain dari program konversi suhu yang

terdapat pada latihan 2. Gambar 10 menggunakan

Jslider

sebagai petunjuk nilai

(35)

Rancangan tampilan dari gambar 10 adalah sebagai berikut :

lblCelcius

lblCelciusCapt

sldCelcius

lblFahrenheit

lblCalvin

lblFahrenheitCapt

lblKelvinCapt

s

l

d

F

a

h

r

e

n

h

e

i

t

s

l

d

K

e

l

v

i

n

Terdapat 6 (enam) panel, yaitu :

-

pane11, dengan model FlowLayout.CENTER, untuk penempatan lblCelcius dan

lblCelciusCapt

-

panel2, dengan model BorderLayout, dimana BorderLayout.NORTH untuk

penempatan panel1 dan BorderLayout.SOUTH untuk penempatan sldCelcius

-

panel3, dengan model GridLayout(2,2), untuk penempatan lblFahrenheit,

lblKelvin, lblFahreinheitCapt, dan lblKelvinCapt

-

panel4, dengan model layout BorderLayout, dimana BorderLayout.WEST untuk

penempatan sldFahrenheit dan BorderLayout.EAST untuk penempatan sldKelvin

-

panel5, dengan model layout BorderLayout, dimana BorderLayout.NORTH untuk

penempatan panel3 dan BorderLayout.SOUTH untuk penempatan panel4

-

panel6, dengan model layout BorderLayout, dimana BorderLayout.NORTH untuk

penempatan panel2 dan BorderLayout.SOUTH untuk penempatan panel5

(36)

//program ke sembilan import javax.swing.*; import javax.swing.event.*; import java.awt.*;

import java.awt.event.*; class frame1 extends JFrame {

//penggunaan slider

//JSlider (posisi <0-horisontal|1-vertical>,min,max,0) private Container konten = new Container();

private JPanel panel1 = new JPanel(); private JPanel panel2 = new JPanel();

private JLabel lblCelcius = new JLabel(); private JLabel lblCelciusCapt = new JLabel(); private JSlider sldCelcius = new JSlider(); private JPanel panel3 = new JPanel();

private JLabel lblFahrenheit = new JLabel(); private JLabel lblFahrenheitCapt = new JLabel(); private JLabel lblKelvin = new JLabel();

private JLabel lblKelvinCapt = new JLabel(); private JPanel panel4 = new JPanel();

private JSlider sldFahrenheit = new JSlider(1,0,200,0); private JSlider sldKelvin = new JSlider(1,0,200,0); private JPanel panel5 = new JPanel();

private JPanel panel6 = new JPanel(); frame1()

{

super("Universitas Budi Luhur");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(200,325); setLocation(10,100); konten = getContentPane(); lblCelcius.setText("Celcius"); lblCelciusCapt.setText("0 Derajat"); panel1.setLayout(new FlowLayout(FlowLayout.CENTER)); panel1.add(lblCelcius); panel1.add(lblCelciusCapt); panel2.setLayout(new BorderLayout()); panel2.add(panel1, BorderLayout.NORTH); sldCelcius.setValue(0); panel2.add(sldCelcius, BorderLayout.SOUTH); lblFahrenheit.setText("Fahrenheit "); lblFahrenheitCapt.setText("0 Derajat"); lblKelvin.setText("Kelvin "); lblKelvinCapt.setText("273.15 Derajat"); panel3.setLayout(new GridLayout (2, 2)); panel3.add(lblFahrenheit); panel3.add(lblKelvin); panel3.add(lblFahrenheitCapt); panel3.add(lblKelvinCapt); panel4.setLayout(new BorderLayout()); panel4.add(sldFahrenheit, BorderLayout.WEST); sldKelvin.setMaximum(1000); sldKelvin.setMinimum((int) 273.15); sldKelvin.setValue((int) 273.15);

panel4.add(sldKelvin, BorderLayout.EAST);

(37)

panel5.setLayout(new BorderLayout()); panel5.add(panel3, BorderLayout.NORTH); panel5.add(panel4, BorderLayout.SOUTH); panel6.setLayout(new BorderLayout()); panel6.add(panel2, BorderLayout.NORTH); panel6.add(panel5, BorderLayout.SOUTH); sldCelcius.addChangeListener (

//jika nilai slider Berubah new ChangeListener()

{public void stateChanged(ChangeEvent e) { lblCelciusCapt.setText(sldCelcius.getValue() + " Derajat"); } } ); sldCelcius.addMouseListener (

//jika mouse selesai melakukan pergerakan new java.awt.event.MouseAdapter()

{

public void mouseReleased(MouseEvent e) { double dFahrenheit,dKelvin; dFahrenheit = (sldCelcius.getValue() * 1.8) + 32; dKelvin = sldCelcius.getValue() + 273.15; sldFahrenheit.setValue((int) dFahrenheit); lblFahrenheitCapt.setText(dFahrenheit + " Derajat"); lblKelvinCapt.setText(dKelvin + " Derajat"); sldKelvin.setValue((int) dKelvin); } } ); sldFahrenheit.addChangeListener ( new ChangeListener()

{public void stateChanged(ChangeEvent e) { lblFahrenheitCapt.setText( sldFahrenheit.getValue() + " Derajat"); } } ); sldFahrenheit.addMouseListener (new java.awt.event.MouseAdapter() {

public void mouseReleased(MouseEvent e) { double dCelcius,dKelvin; dCelcius=(sldFahrenheit.getValue()-32)* 0.5555; dKelvin = dCelcius + 273.15; sldCelcius.setValue((int) dCelcius); lblCelciusCapt.setText(dCelcius + " Derajat"); sldKelvin.setValue((int) dKelvin); lblKelvinCapt.setText(dKelvin + " Derajat"); } } ); sldKelvin.addChangeListener ( new ChangeListener()

{public void stateChanged(ChangeEvent e) {

(38)

} } ); sldKelvin.addMouseListener (new java.awt.event.MouseAdapter() {

public void mouseReleased(MouseEvent e) { double dCelcius,dFahrenheit; dCelcius = sldKelvin.getValue()-273.15; dFahrenheit = (dCelcius * 1.8) + 32; sldCelcius.setValue((int) dCelcius); lblCelciusCapt.setText(dCelcius + " Derajat"); sldFahrenheit.setValue((int) dFahrenheit); lblFahrenheitCapt.setText(dFahrenheit + " Derajat"); } } ); konten.add(panel6); show(); } }

public class praktek51 {

public static void main(String args[]) {

new frame1(); }

}

Latihan 3

(39)

BAB VII

JMenuBar, JMenu, JPopupMenu, JMenuItem,

JTextArea, dan Box

Kali ini contoh program menggunakan JMenuBar, JPopupMenu, JMenuItem,

JTextArea dan layout Box komponen untuk membuat program editor teks berita.

JMenuBar

Untuk mengimplementasikan menu pada form dapat menggunakan komponen

JMenuBar

Constructor

JMenuBar

()

Membuat Bar Menu.

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

JMenu

Untuk menambahkan item pada JMenuBar kita harus menggunakan JMenu, dimana

JMenu juga dapat ditambahkan JmenuItem dan juga Jseparators.

Beberapa

Method

yang harus diketahui

JMenu

add

(JMenu c)

Menambah objek

JMenu

ke

JMenuBar

JMenu

getMenu

(int index)

Mendapat posisi menu yang disesuaikan dengan parameter

index.

int

getMenuCount

()

Mendapatkan jumlah menu.

boolean

isSelected

()

Melakukan pengecekan apakah menu yang dimaksud dalam

posisi terpilih.

void

setSelected

(Component sel)

(40)

Constructor

JMenu

()

Membuat

JMenu

tanpa teks.

JMenu

(Action a)

Membuat menu dengan penambahan

Action

.

JMenu

(String s)

Membuat

JMenu

dengan teks.

JMenu

(String s, boolean b)

Membuat

JMenu

dengan teks dan penandaan

tear-off menu

atau tidak.

Beberapa

Method

yang harus diketahui

JMenuItem

add

(Action a)

Membuat menu item dengan penambahan

Action

objek dan menambahkannya pada akhir menu.

Component

add

(Component c)

Menambahkan komponen pada akhir menu.

Component

add

(Component c, int index)

Menambah komponen pada posisi (index) tertentu.

JMenuItem

add

(JMenuItem menuItem)

Menambah

JMenuItem

pada akhir menu.

JMenuItem

add

(String s)

Menambah

JMenuItem

dengan teks dan

menambahnya pada akhir menu.

void

addMenuListener

(MenuListener l)

Menambahkan listener pada menu.

void

addSeparator

()

Menambahkan garis separator pada akhir menu.

Int

getDelay

()

Mendapatkan nilai delay menu

JMenuItem

getItem

(int pos)

Mendapat

JMenuItem

pada posisi tertentu.

int

getItemCount

()

Mendapatkan jumlah

JMenuItem

pada menu termasuk

dengan garis separator.

JMenuItem

insert

(Action a, int pos)

(41)

JMenuItem

insert

(JMenuItem mi, int pos)

Menyisipkan

JMenuitem

pada posisi tertentu.

Void

insert

(String s, int pos)

Menyisipkan menu tertentu dengan teks pada posisi

tertentu.

Void

insertSeparator

(int index)

Menyisipkan garis separator pada posisi tertentu.

boolean

isPopupMenuVisible

()

Mendapatkan nilai true atau false mengenai

kemungkinan popup.

boolean

isSelected

()

Mendapatkan nilai true apabila menu tersebut dalam

posisi terpilih (highlighted).

void

remove

(Component c)

Menghapus komponen

c

dari menu.

Void

remove

(int pos)

Menghapus

JMenuItem

pada posisi tertentu pada

menu.

void

remove

(JMenuItem item)

Menghapus

JMenuItem

dari menu.

void

removeAll

()

Mengapus semua menu item dari menu.

Void

setDelay

(int d)

Memberikan waktu delay Sets the suggested delay

before the menu's

PopupMenu

is popped up or down.

void

setMenuLocation

(int x, int y)

Menempatkan lokasi X dan Y dari pop menu.

void

setPopupMenuVisible

(boolean b)

Memberikan status true (tampil) atau false (tidak)

pada menu popup.

JPopupMenu

Mengimplementasikan menu dengan model popup, sebuah tampilan kecil yang tampil

dengan beberapa pilihan.

JPopupMenu

digunakan pada menu yang tampil pada saat

pengguna memilih komponen pada bar menu. Dan juga digunakan pada saat mouse

ditekan ”klik kanan”. Popup menu dapat tampil diposisi manapun yang diinginkan.

Constructor

(42)

Membuat

JPopupMenu

.

JPopupMenu

(String label)

Membuat

JPopupMenu

dengan title.

Beberapa

Method

yang harus diketahui

JMenuItem

add

(Action a)

Menambahkan

Action

object

.

JMenuItem

add

(JMenuItem menuItem)

Menambahkan

JMenuItem

dan ditempatkan pada

posisi terakhir menu.

JMenuItem

add

(String s)

Menambahkan menu teks dan ditempatkan pada

posisi akhir menu.

void

addSeparator

()

Menambahakan garis separator pada akhir menu.

String

getLabel

()

Mendapatkan label popup menu

void

insert

(Action a, int index)

Menyisipkan

Action

pada posisi tertentu.

void

insert

(Component component, int index)

Inserts the specified component into the menu at a

given position.

boolean

isVisible

()

Mendaptkan nilai true jika pada posisi tampil.

void

remove

(int pos)

Menghapus komponen pada posisi tertentu.

void

setLabel

(String label)

Memberikan label pada popup menu.

void

setLocation

(int x, int y)

Menempatkan lokasi popup menu di koordinat X

dan Y

void

setPopupSize

(Dimension d)

Memberikan ukuran berdasarkan dimensi.

void

setPopupSize

(int width, int height)

Memberikan ukuran berdasarkan lebar dan tinggi.

void

setSelected

(Component sel)

Menempatkan sel aktif pada komponen tertentu.

(43)

Menampilkan popup menu jika parameter input

adalah true.

void

show

(Component invoker, int x, int y)

Menampilkan popup menu berdasarkan koordinat X

dan Y.

JMenuItem

Memberikan komponen pada Jmenu dan JPopupMenu

Constructor

JMenuItem

()

Membuat

JMenuItem

tanpa teks dan gambar ikon.

JMenuItem

(Action a)

Membuat

JMenuItem

dengan

Action

.

JMenuItem

(Icon icon)

Membuat

JMenuItem

dengan gambar ikon.

JMenuItem

(String text)

Membuat

JMenuItem

dengan teks.

JMenuItem

(String text, Icon icon)

Membuat

JMenuItem

dengan teks dan gambar ikon.

JMenuItem

(String text, int mnemonic)

Membuat

JMenuItem

dengan teks dan shortcut keyboard mnemonic.

Beberapa

Method

yang harus diketahui

void

setEnabled

(boolean b)

Enables or disables the menu item.

Contoh Penggunaan :

http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

JTextArea

JTextArea berfungsi sebagai teks editor dalam bentuk

multiline

, sedangkan dalam

penggunaannya, untuk mengaktifkan scroll pada JTextArea menggunakan bantuan

JScrollPane.

Constructor

JTextArea

()

Membuat TextArea.

JTextArea

(Document doc)

(44)

JPopupMenu(); JMenuItem("Copy"); JMenuItem("Cut"); JMenuItem("Paste");

JPopupMenu

JMenuBar() JMenu(“File”) JMenuItem(“Buka File”) JMenuItem(“Simpan File”) JMenuItem(“Keluar”) JMenu(“Edit”) JMenuItem(“Copy”) JMenuItem(“Cut”) JMenuItem(“Paste”) Jmenu(“Tentang”)

Menu Bar

JTextArea

private JTextArea txtArea;

txtArea = new JTextArea(20,15); txtArea.setLineWrap(true);

JTextArea

(Document doc, String text, int rows, int columns)

Membuat

JTextArea

dengan model dokumen, teks, baris dan kolom sesuai dengan

parameter yang diberikan.

JTextArea

(int rows, int columns)

Membuat

JTextArea

dengan baris dan kolom yang sesuai dengan parameter input.

JTextArea

(String text)

Membuat

JTextArea

dengan teks didalamnya.

JTextArea

(String text, int rows, int columns)

(45)

Komponen 1

Komponen 2

Komponen 3

Gambar 11. Program Editor Berita

Gambar 11, merupakan program yang menerapkan sistem menu, popmenu,

textarea dan box layout.

Menu yang akan tampil pada program tersebut adalah sebagai berikut :

-

File (JMenu

mniFile)

o

Buka File (JMenuItem

mniFileBuka)

o

Simpan File (JMenuItem

mniFileSimpan)

o

Keluar (JMenuItem

mniKeluar)

-

Edit (JMenu

mniEdit)

o

Copy (JMenuItem

mniCopy)

o

Cut (JMenuItem

mniCut)

o

Paste (JMenuItem

mniPaste)

-

Tentang (JMenu

mniTentang)

Menu popup akan tampil apabila JtextArea di –

click

kanan dengan tampilan :

-

Copy (JMenuItem

mniCopy)

-

Cut (JMenuItem

mniCut)

-

Paste (JMenuItem

mniPaste)

Rancangan tampilan menggunakan 2 (dua) panel dan box dengan model

VerticalBox. Yang dimaksud dengan Vertical Box adalah setiap komponen objek

yang ditambahkan pada box berada pada posisi bawah (vertikal).

Gambar 12. VerticalBox

Untuk lebih jelasnya adalah sebagai berikut :

-

panel1, dengan model layout GridLayout(2,2), untuk penempatan lblKategori,

cmbKategori, lblDaerah dan cmbDaerah

-

panel2, dengan model layout GridLayout(3,1), untuk penempatan lblJudul,

txtJudul, dan lblIsi.

-

Box, dengan komponen pertama adalah panel1 dan komponen kedua adalah

panel2

//program ke sepuluh import javax.swing.*; import java.awt.*; import java.awt.event.*; class frame52 extends JFrame {

Gambar

Gambar 2. JFrame Dan Property
GRAFIK DUA DIMENSI (2D) PADA JFRAME
Gambar 4. Grafik 2D bendera Merah Putih
Gambar 5. Input Data Mahasiswa
+7

Referensi

Dokumen terkait

Untuk mengambil nilai data yang sesuai dengan nilai pada setiap kolom tabel, kita dapat menggunakan method getXXX (sebagai contoh, getInt, getString, getDouble, dan sebagainya).

Untuk dapat menggunakan kelas yang telah didefinisikan, anda harus membuat sebuah. objek dari kelas tersebut (instance class),

Kod ekan semua fakta di atas ke dalam Notepad dan seterusnya run-kan program tersebut dengan menggunakan penterjemah swi-prolog dan ajukan semua contoh pertanyaan

Gambar 4 menunjukkan sebuah array dengan jumlah elemen 10, sedangkan List 3 menunjukkan contoh kode array dalam bahasa Java.. Setiap elemen dari array dapat diakses dengan indek

Setelah mengikuti matakuliah ini, mahasiswa diharapkan mampu memecahkan masalah yang berbeda dengan menggunakan bahasa pemrograman yang

Buatlah program sederhana menggunakan variable pointer untuk menunjuk pada tipe data char, dengan nilai dari variable tersebut adalah input dari nama anda.

Satu hal lagi yang perlu diperhatikan lagi jika kita menggunakan pointer ialah tipe variabel pointer dengan tipe data variabel yang ditunjuknya haruslah sama

Program input form HTML dan output PHP error semua dan tidak running Tidak memenuhi indikator penilaian 5 % 12 Pre test, mengerjak an tugas7 dan post test