/**
* Title : DemoJMenu
* Deskripsi: Membuat aplikasi Menu sederhana.
* @author : Benny Hermawan
* @versi : 1.0
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
public class DemoJMenu extends JFrame
implements ActionListener, ItemListener {
JTextArea output;
JScrollPane scrollPane;
String newline = "\n";
// Konstruktor Default
public DemoJMenu() {
JMenuBar menuBar;
JMenu menu, submenu;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem;
JCheckBoxMenuItem cbMenuItem;
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// Menambahkan komponen-komponen ke window
// menggunakan default BorderLayout.
Container contentPane = getContentPane();
output = new JTextArea(5, 30);
output.setEditable(false);
scrollPane = new JScrollPane(output);
contentPane.add(scrollPane, BorderLayout.CENTER);
// Membuat menu bar.
menuBar = new JMenuBar();
setJMenuBar(menuBar);
// Membuat menu pertama.
menu = new JMenu("Menu");
menu.setMnemonic(KeyEvent.VK_M);
menu.getAccessibleContext().setAccessibleDescription(
"Hanya menu ini yang memiliki item menu");
menuBar.add(menu);
// Membuat kelompok JMenuItems
menuItem = new JMenuItem("New",
KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.getAccessibleContext().setAccessibleDescription(
"Item ini tidak mengerjakan apapun");
menuItem.addActionListener(this);
menu.add(menuItem);
menuItem = new JMenuItem("Open",
new ImageIcon("new.gif"));
menuItem.addActionListener(this);
menu.add(menuItem);
menuItem = new JMenuItem(new ImageIcon("open.gif"));
menuItem.addActionListener(this);
menu.add(menuItem);
// Membuat kelompok item menu berupa radio button
menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem
("Save");
rbMenuItem.setSelected(true);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem);
rbMenuItem.addActionListener(this);
menu.add(rbMenuItem);
rbMenuItem = new JRadioButtonMenuItem
("Save As");
rbMenuItem.setMnemonic(KeyEvent.VK_L);
group.add(rbMenuItem);
rbMenuItem.addActionListener(this);
menu.add(rbMenuItem);
// Membuat kelompok item menu berupa check box
menu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem
("Import File");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
cbMenuItem.addItemListener(this);
menu.add(cbMenuItem);
cbMenuItem = new JCheckBoxMenuItem
("Export File");
cbMenuItem.addItemListener(this);
menu.add(cbMenuItem);
//Mengeset submenu
menu.addSeparator();
submenu = new JMenu("Exit");
submenu.setMnemonic(KeyEvent.VK_S);
menuItem = new JMenuItem("Exit with Save");
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_2, ActionEvent.ALT_MASK));
menuItem.addActionListener(this);
submenu.add(menuItem);
menuItem = new JMenuItem("Exit without Save");
menuItem.addActionListener(this);
submenu.add(menuItem);
menu.add(submenu);
// Membuat menu kedua dalam menu bar.
menu = new JMenu("Menu lainnya");
menu.getAccessibleContext().setAccessibleDescription(
"Menu ini hanya menampilkan deteksi event");
menuBar.add(menu);
}
// Membuat handler yang akan mendeteksi event
public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem)(e.getSource());
String s = "Action event terdeteksi."
+ newline
+ " Event source: " + source.getText()
+ " (merupakan instans dari" +
getClassName(source) + ")";
output.append(s + newline);
}
public void itemStateChanged(ItemEvent e) {
JMenuItem source = (JMenuItem)(e.getSource());
String s = "Item event terdeteksi."
+ newline
+ " Event source: " + source.getText()
+ " (merupakan instans dari " +
getClassName(source) + ")"
+ newline
+ " State baru: "
+ ((e.getStateChange() == ItemEvent.SELECTED) ?
"selected":"unselected");
output.append(s + newline);
}
// Mengembalikan nama kelas
protected String getClassName(Object o) {
String classString = o.getClass().getName();
int dotIndex = classString.lastIndexOf(".");
return classString.substring(dotIndex+1);
}
// Main Method
public static void main(String[] args) {
DemoJMenu window = new DemoJMenu();
window.setTitle("Mendemonstrasikan Menu");
window.setSize(450, 260);
window.setVisible(true);
}
}
05 April 2009
Langganan:
Postingan (Atom)