Nama :Dessy Natalia Situngkir
Mik : 92
Pertemuan : 11
Pertemuan : 11
JMENU
Bekerja dengan Menu, Popup Menu dan
Toolbar
Menu,
Popup menu dan Toolbar
digunakan untuk melakukan navigasi
dalam aplikasi. dengan ketiga
komponen itu navigasi dalam aplikasi
menjadi lebih fleksibel dan mudah digunakan oleh
user. Menu dan Toolbar pada umumnya diletakkan di bagian atas dari
aplikasi agar mudah ditemukan oleh user. Sedangkan Popup Menu bisa
muncul di mana saja sesuai dengan konteks aplikasi.JMenuBar adalah class yang
digunakan untuk menampung JMenu. JMenu dapat menampung satu
atau lebih JMenuItem. JMenuItem merupakan
bagian terluar dari struktur
menu yang tidak bisa mempunyai
child. JSeparatordigunakan untuk memisahkan antara satu
menu item dan menu item
yang lain. Jika didalam menu terdapat sub
menu, gunakan JMenu untuk menampung sub menu tersebut.
Selain JMenuItem, JMenu juga
dapat menerima class JCheckBoxMenuItem dan
JRadioButtonMenuItem. JPopupMenu mempunyai banyak kesamaan
dibandingkan dengan
JMenuBar.
Perbedaan utamanya adalah :
JMenuBar hanya bisa berada di
atas sebuah jendela JFrame.
Sedangkan JPopupMenu bisa muncul di mana saja sesuai dengan konteks
dari aplikasi. Perbedaan lainnya terletak di dalam penggunaan umum keduanya.
JMenuBar berisikan menu/instruksi
yang bersifat umum dan berlaku
untuk semua keadaan dalam
aplikasi. Sedangkan JPopupMenu akan mempunyai
menu/instruksi yang berbeda-beda berdasarkan dari konteks
aplikasi. Oleh karena itu JPopupMenu terkadang disebut
juga sebagai konteks menu.Toolbar memberikan cara yang lebih praktis
dibandingkan menu, bahkan bisa dikatakan
bahwa toolbar adalah cara
cepat untuk mengakses menu.
Oleh karena itu, setiap
item dalam toolbarbiasanya juga tersedia dalam menu. Pada umumnya
toolbar diwakili hanya dengan gambar/icon yang melambangkan perintah
dari toolbarnya. Di internet
banyak tersedia toolbar icon
gratis yang dapat kita gunakan.
Berbeda
dengan JMenuBar dan JPopupMenu
yang hanya bisa menerima menu
item, JToolBar dapat menampung
JButton atau control lainya.
Seperti contohnya : JCheckBox,
JRadioButton, JtoggleButton dan lainya. Normalnya,
JToolBar akan diisi dengan JButton yang dihilangkan text-nya dan
diganti dengan icon. Kita juga perlu
merubah dekorasi JButton agar
tampilannya terlihat cantik dan menarik.
Membuat Menu
Bekerja dengan
Menu dalam Java melibatkan
enam komponen swing, antara lain :
1. JMenuBar : Class yang
menampung semua menu, hanya bisa menampung JMenu sebagai child.
2. JMenu :
Class yang mempunyai child menu
item. Biasanya JMenu ini yang jadi child langsung dengan JMenuBar
3. JMenuItem
: Ujung dari menu,
disinilah object Action diletakkan, sehingga ketika
kita memilih JMenuItem ada action
tertentu yang dijalankan aplikasi.
4. JCheckBoxMenuItem
: Ujung dari menu, namun
bentuknya lebih mirip JCheckBox.
5. JRadioButtonMenuItem
: Ujung dari menu, namun bentuknya lebih mirip JButton.
HALAMAN 26 | JAVA SWING
6. JSeparator : pemisah antar
JMenuItem atau antar JMenu Setiap komponen menu mempunyai
fungsi dan kegunaan masing-masing. Jika
kita perhatikan, menu dalam
aplikasi umumnya mempunyai shortcut untuk mengakses menu
tanpamenggunakan bantuan mouse. Misalnya
menu File biasanya dapat diakses
menggunakan tombol ALT + F, menu Format dapat diakses dengan ALT +
O. Fasilitas shortcut menu ini
disebut sebagai Keyboard Mnemonic. File
mempunyai mnemonic F, Format
mempunyai mnemonic o, dan seterusnya. Pada umumnya tampilan
mnemonic
dari sebuah menu diwakili dengan
huruf yang bergaris bawah. Matisse mempunyai fasilitas yang sangat OK untuk
bekerja dengan Menu, fasilitas
drag-and-dropnya membantu banyak
pekerjaanmembangun aplikasi barbasis GUI secara signifikan.
Membuat Popup Menu
Popup
menu pada dasarnya tidak
jauh berbeda dibandingkan dengan menu biasa, hanya saja
popup menu dapat muncul di mana saja, tidak hanya di bagian atas JFrame seperti
halnya JMenuBar. Selain itu kita
harus menentukan kapan popup
muncul, pada umumnya popup akan muncul ketika
user melakukan klik kanan terhadap suatu komponen
swing. Misalnya, ketika suatu table di klik kanan
terdapat popup yang muncul, dan sebagainya. Popup menu terutama digunakan
sebagai “context sensitive menu”, dimana menu
yang ditampilkan oleh popup
menu tergantung konteks dari
aplikasi, semisal: komponen apa yang dikenai aksi
klik kanan, bagaimana keadaan data dalam komponen tersebut dan
sebagainya.
Aplikasi yang
memerlukan interaksi yang sangat intens
dengan user sebaiknya menggunakan
popup menu untuk memudahkan
user mengakses action tertentu.
Hal ini jauh lebih
praktis dibanding user harus mengakses menu dalam JMenuBar di bagian atas
JFrame. Popup menu dalam contoh program diatas akan muncul ketika
user melakukan klik kanan terhadap JFrame. menu yang ditampilkanya
pun hanya ada tiga buah: cut, copy dan paste.
Ikuti langkah-langkah beritkut ini
untuk membuat Popup menu :
1. Buka class
ToolbarMenu.java, yang telah dibuat dalam langkah sebelumnya, dalam
Jendela Design.
2. Klik
Jendela Pallete dan pilih
JPopupMenu, kemudian klik
Jendela Design.
Secara otomatis
JPopupMenu akan ditambahkan dalam class
ToolbarMenu.java. JPopupMenu tidak terlihat dalam Jendela Design, namun
anda bisa mengkasesnya melalui Jendela Inspector.
3. Menambahkan
JMenuItem. Seperti
halnya JMenuBar, JPopupMenu
dapat memiliki child berupa JMenu, JMenuItem,
JCheckBoxMenuItem, JRadioButtonMenuItem dan JSeparator.
Menambahkan JMenuItem ke dalam
JPopupMenu sangat sederhana,
caranya : klik kanan
pada JPopupMenu di Jendela Design, kemudian pilih menu : Add > JMenuitem
Ganti nama objectnya menjadi
menuCut, beralihlah ke Jendela Properties kemudian set text dan mnemonic
yang sesuai.Lakukan langkah ini untuk JMenuItem
yang lain, menuCopy dan menuPaste.
4. Memunculkan JPopupMenu. Ketika
tombol kanan mouse di klik diatas JFrame,
JPopupMenu akan tampil. Agar
behavior tersebut berjalan, kita
perlu menangani event mouseClick
terhadap JFrame. Caranya :
a) Klik kanan JFrame di Jendela
Design, kemudian pilih menu : Events > Mouse >
mouseClicked
b) Di dalam
jendela source yang terbuka
masukkan kode berikut ini :
private void formMouseClicked(
java.awt.event.MouseEvent evt) {
// TODO add your
handling code here:
if(evt.getButton() == MouseEvent.BUTTON3){
popUpMenu.show(
(Component)evt.getSource(),
evt.getX(),evt.getY ());
}
}
Kondisi if
diatas digunakan apakah tombol yang
diklik mouse adalah tombol sebelah kanan, jika nilai
kembalian method getButton benar tombol kanan
yang ditekan.
Method show digunakan untuk
memunculkan popup menu, parameter pertama
diisi dengan Component dimana
nantinya popup menu
akan ditampilkan, sedangkan parameter
kedua dan ketiga diisi dengan letak koordinat popup
menu akan ditampilkan.
5. Simpan file
ToolbarMenu.java, compile dan jalankan. Kemudian coba munculkan popup
menu dengan mengklik kanan JFrame. Popup menu sangat berguna jika
aplikasi yang kita kembangkan membutuhkan interaksi
yang intensif dengan user. Popup menu
menyediakan cara mudah untuk
mengakses menu/action yang sesuai dengan konteks
dari aplikasi.
Contoh-contoh program
Contoh Program MainMenu.java
import java.awt.event.*; // pemanggilan package java.awt.event
import javax.swing.*; .*; // pemanggilan package
javax.swing
import java.awt.*; .*; // pemanggilan package
javax.awt
class CobaMenu extends JFrame { // pendeklarasian class utama turunan dari class
JFrame
JMenuBar
menuBar; // pembuatan JMenubar pada program
JMenu
file,doc,edit,help; //
pembuatan JMenufile pada program dengnan menu, file, doc, edit, help.
JMenuItem
open,save,exit,delete,copy,paste,about; // pembuatan JMenuitemr pada menufile
public CobaMenu() {
setTitle("Menu");
// menentukan judul pada Menu Bar diJFrame
setSize(200,200); // menentukan ukuran JFrame
file = new
JMenu("File"); // pembuatan JMenu file
file.setMnemonic('F');
doc = new
JMenu("Document");
doc.setMnemonic('D');
edit = new
JMenu("Edit");
edit.setMnemonic('E');
help = new
JMenu("Help");
help.setMnemonic('H');
open = new
JMenuItem("Open");
open.setMnemonic('O');
save = new
JMenuItem("Save");
save.setMnemonic('S');
exit = new
JMenuItem("Exit");
exit.setMnemonic('X');
delete = new
JMenuItem("Delete");
delete.setMnemonic('L');
copy = new
JMenuItem("copy");
copy.setMnemonic('C');
paste = new
JMenuItem("Paste");
paste.setMnemonic('P');
about = new
JMenuItem("Paste");
about.setMnemonic
('A');
menuBar = new
JMenuBar(); // pembuatan JMenuitem
setJMenuBar (menuBar);
menuBar.add(file);
file.add(open);
file.add(save);
file.addSeparator();// pembuatan garis pada file
file.add(exit);
menuBar.add(doc); // menambah doc dalam menubar
doc.add(edit);
edit.add(copy);
edit.add(paste);
edit.add(delete);
menuBar.add(help);
help.add(about);
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE); //
membuat operasi exit pada JFrame
setVisible(true);
}
}
public class MainMenu {
public static void main (String [] neno) { // Baris program ini berfungsi sebagai program
utama yang akan dijalankan ketika program
dirun
sehingga program ini disimpan dengan nama class yang terdapat baris program
utamanya.
CobaMenu m = new CobaMenu();
}
}
Hasilnya:
Adalah turunan class
frame
import java.awt.*; // pemanggilan package java.awt.
import javax.swing.*; // pemanggilan package javax.swing.event
import java.awt.event.*; // pemanggilan package java.awt.event
class FFrame extends JFrame
implements ActionListener{
JButton btnTutup = new
JButton("TUTUP");
public FFrame() {
super("FRAME");
setSize(200,100);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(null);
add(btnTutup);
btnTutup.addActionListener(this);
btnTutup.setBounds(40,20,100,20);
setVisible(true);
}
public void
actionPerformed(ActionEvent e) {
if(e.getSource()==btnTutup)
{
dispose();
}
}
}
Hasilnya:
Contoh Program
FDialog.java
Adalah turunan class
sebagai dialog.
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class FDialog extends JDialog
implements ActionListener{
JButton btnTutup = new
JButton("TUTUP");
public FDialog() {
setTitle("DIALOG");
setSize(200,100);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setLayout(null);
add(btnTutup);
btnTutup.addActionListener(this);
btnTutup.setBounds(40,20,100,20);
setVisible(true);
}
public void
actionPerformed(ActionEvent e) {
if(e.getSource()==btnTutup) {
dispose();
}
}
}
Hasilnya:
Contoh Program
MainMenu2.java
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
class Menu extends JFrame {
JMenuBar menuBar;
JMenu file, buatBaru;
JMenuItem exit, frame,
dialog, pesan;
public Menu() {
setTitle("Menu");
setSize(200,200);
file = new
JMenu("File");
file.setMnemonic('F');
buatBaru = new
JMenu("BuatBaru");
buatBaru.setMnemonic('B');
exit = new
JMenuItem("EXIT");
exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));
frame = new
JMenuItem("Frame");
frame.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,ActionEvent.CTRL_MASK));
dialog = new
JMenuItem("Dialog");
dialog.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));
pesan = new
JMenuItem("Pesan");
pesan.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,ActionEvent.CTRL_MASK));
menuBar = new
JMenuBar();
setJMenuBar(menuBar);
menuBar.add(file);
file.add(exit);
menuBar.add(buatBaru);
buatBaru.add(frame);
buatBaru.add(dialog);
buatBaru.add(pesan);
exit.addActionListener(new
ActionListener() {
public void
actionPerformed(ActionEvent e) {
System.exit(0);
}
}
);
frame.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new FFrame();
}
}
);
dialog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new FDialog();
}
}
);
pesan.addActionListener(new
ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Tutup?", "Pesan",
JOptionPane.QUESTION_MESSAGE);
}
}
);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
public class MainMenu2 {
public static void
main(String [] yoan) {
new Menu();
}
}
Hasilnya:
Tidak ada komentar:
Posting Komentar