Selasa, 10 Januari 2012

JMENU



Nama   :Dessy Natalia Situngkir
Mik      : 92
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:




 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();
   }
  }
}

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