Sabtu, 04 April 2009

Membuat Tampilan Menu dan Item-itemnya

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";

public DemoJMenu() {
JMenuBar menuBar;
JMenu menu, submenu;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem;
JCheckBoxMenuItem cbMenuItem;


addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

Container contentPane = getContentPane();
output = new JTextArea(5, 30);
output.setEditable(false);
scrollPane = new JScrollPane(output);
contentPane.add(scrollPane,
BorderLayout.CENTER);

menuBar = new JMenuBar();
setJMenuBar(menuBar);

menu = new JMenu("Menu");
menu.setMnemonic(KeyEvent.VK_M);
menu.getAccessibleContext().setAccessibleDescription("Hanya menu yang memiliki item menu");
menuBar.add(menu);
menuItem = new JMenuItem("Item yang berupa text",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("Item dengan text dan icon",new ImageIcon("new.gif"));
menuItem.addActionListener(this);
menu.add(menuItem);

menuItem = new JMenuItem(new ImageIcon ("open.gif"));
menuItem.addActionListener(this);
menu.add(menuItem);

menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem("Item menu Radio Button");
rbMenuItem.setSelected(true);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem);
rbMenuItem.addActionListener(this);
menu.add(rbMenuItem);
rbMenuItem = new JRadioButtonMenuItem("Item menu Radio Button lainnya");
rbMenuItem.setMnemonic(KeyEvent.VK_L);
group.add(rbMenuItem);
rbMenuItem.addActionListener(this);
menu.add(rbMenuItem);

menu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem("Item menu Check Box");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
cbMenuItem.addItemListener(this);
menu.add(cbMenuItem);
cbMenuItem = new JCheckBoxMenuItem("Item menu check Box lainnya");
cbMenuItem.addItemListener(this);
menu.add(cbMenuItem);

menu.addSeparator();
submenu = new JMenu("Submenu");
submenu.setMnemonic(KeyEvent.VK_S);

menuItem = new JMenuItem("Item dalam submenu");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,ActionEvent.ALT_MASK));
menuItem.addActionListener(this);
submenu.add(menuItem);

menuItem = new JMenu("Item lainnya");
menuItem.addActionListener(this);
submenu.add(menuItem);
menu.add(submenu);

menu = new JMenu("Menu lainnya");
menu.getAccessibleContext().setAccessibleDescription("Menu ini hanya menampilkan deteksi event");
menuBar.add(menu);
}
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 + " (merupakan instans dari " + getClassName(source) + ")" + newLine + " State baru: " + ((e.getStateChange() == ItemEvent.SELECTED) ? "selected":"unselected");
output.append(s + newLine);
}

protected String getClassName(Object o) {
String classString = o.getClass().getName();
int dotIndex = classString.lastIndexOf(".");
return classString.substring(dotIndex+1);
}

public static void main(String[] args) {
DemoJMenu window = new DemoJMenu();

window.setTitle("Mendemonstrasikan Menu");
window.setSize(450, 260);
window.setVisible(true);
}
}

Tidak ada komentar:

Posting Komentar