In this AWT Tutorial, we will show an AWT Popup Menu on Mouse Right Click. The popup menu will display menu items to change the background color of the AWT Frame Window.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
import java.awt.Color; import java.awt.Component; import java.awt.Frame; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; //Sample 04: Implement Mouse Listener //Sample 07: Implement Action Listener public class FrameWin extends Frame implements WindowListener, MouseListener, ActionListener { //Sample 00: Class Members PopupMenu popup; MenuItem popLGray; MenuItem popMGray; MenuItem popDGray; MenuItem popReset; public FrameWin(String FrameTitle) { //Display the Frame Window super(FrameTitle); setSize(400, 400); setLocation(100,100); addWindowListener(this); //Sample 01: Create MenuItems for Pop-up Menu popLGray = new MenuItem("Light Gray"); popMGray = new MenuItem("Gray"); popDGray = new MenuItem("Dark Gray"); popReset = new MenuItem("Reset"); //Sample 02: Set Action Commands popLGray.setActionCommand("LG"); popMGray.setActionCommand("MG"); popDGray.setActionCommand("DG"); popReset.setActionCommand("R"); //Sample 03: Create Pop-up Menu popup = new PopupMenu(); popup.add(popLGray); popup.add(popMGray); popup.add(popDGray); popup.addSeparator(); popup.add(popReset); //Sample 05: Register with Mouse Listener add(popup); //=> Most developer may miss this addMouseListener(this); //Sample 08: Register With Action Listener popLGray.addActionListener(this); popMGray.addActionListener(this); popDGray.addActionListener(this); popReset.addActionListener(this); } public void windowOpened(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowClosing(WindowEvent e) { this.dispose(); } public void mouseClicked(MouseEvent e) { //Sample 06: Show Pop-up Menu if (e.getButton() == MouseEvent.BUTTON3) popup.show(this, e.getX(), e.getY()); } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} @Override public void actionPerformed(ActionEvent e) { //Sample 09: Get the Action for Switch Case String action = e.getActionCommand(); switch (action) { case"LG": setBackground(Color.LIGHT_GRAY); break; case"MG": setBackground(Color.GRAY); break; case"DG": setBackground(Color.DARK_GRAY); break; case"R": setBackground(Color.WHITE); break; } } } |
Categories: AWT-Tube