Laporan Materi Java Pertemuan 10
JMenu
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.
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();
}
}
Outputnya:
Contoh Program FFrame.java
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();
}
}
}
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();
}
}
Tidak ada komentar:
Posting Komentar