Membuat Popup Menu di Java

Popup menu merupakan menu yang akan ditampilkan saat kita melakukan klik kanan di window. Program berikut ini merupakan contoh program membuat popup menu di Java. Class yang digunakan adalah JPopupMenu.

Berikut ini tampilan programnya:
contoh-program-menu-popup-java

Berikut ini source code programnya:

01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.swing.*;
04
05 public class PopupMenuTest extends JFrame {
06 private JRadioButtonMenuItem items[];
07 private final Color colorValues[] = {Color.BLUE, Color.YELLOW, Color.RED};
08 private JPopupMenu popMenu;
09
10 public PopupMenuTest() {
11 super ("Menu Popup");
12
13 ItemHandler handler = new ItemHandler();
14 String colorNames[] = {"Biru", "Kuning", "Merah"};
15
16 ButtonGroup colorGroup = new ButtonGroup();
17 popMenu = new JPopupMenu();
18 items = new JRadioButtonMenuItem [colorValues.length];
19
20 for (int i = 0; i < items.length; i++) {
21 items[i] = new JRadioButtonMenuItem (colorNames[i]);
22 popMenu.add (items[i]);
23 colorGroup.add (items[i]);
24 items[i].addActionListener(handler);
25 }
26
27 getContentPane().setBackground(Color.WHITE);
28
29 addMouseListener(
30 new MouseAdapter() {
31 public void mousePressed (MouseEvent e) {
32 showPopupMenu (e);
33 }
34
35 public void mouseReleased (MouseEvent e) {
36 showPopupMenu (e);
37 }
38
39 private void showPopupMenu(MouseEvent e) {
40 if (e.isPopupTrigger())
41 popMenu.show(e.getComponent(), e.getX(), e.getY());
42 }
43 } //end of anonymous class
44 ); //end of addMouseListener
45
46 setSize (400,300);
47 setLocationRelativeTo (null);
48 setVisible (true);
49 }
50
51 public static void main (String args[]) {
52 JFrame.setDefaultLookAndFeelDecorated(true);
53 PopupMenuTest test = new PopupMenuTest();
54 test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
55 }
56
57 private class ItemHandler implements ActionListener {
58 public void actionPerformed (ActionEvent e) {
59 //
60 for (int i = 0; i < items.length; i++) {
61 if (e.getSource() == items[i]) {
62 getContentPane().setBackground (colorValues[i]);
63 return;
64 }
65 }
66 }
67 }
68 }

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: