Pad 950 PM 2 a 40 points Use the following code as example a
Solution
package com.arun;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MySubmenuEx extends JFrame {
public MySubmenuEx() {
initUI();//initilizing
}
private void initUI() {
createMyMenuBar();
setTitle(\"Submenu\");
setSize(360, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//creating Menu
private void createMyMenuBar() {
JMenuBar menubar = new JMenuBar();
ImageIcon iconNew = new ImageIcon(\"new.png\");
ImageIcon iconOpen = new ImageIcon(\"open.png\");
ImageIcon iconSave = new ImageIcon(\"save.png\");
ImageIcon iconExit = new ImageIcon(\"exit.png\");
JMenu fileMenu = new JMenu(\"File\");
JMenu impMenu = new JMenu(\"Import\");
JMenuItem newsfMi = new JMenuItem(\"Import newsfeed list...\");
JMenuItem bookmMi = new JMenuItem(\"Import bookmarks...\");
JMenuItem mailMi = new JMenuItem(\"Import mail...\");
impMenu.add(newsfMi);
impMenu.add(bookmMi);
impMenu.add(mailMi);
JMenuItem newMi = new JMenuItem(\"New\", iconNew);
JMenuItem openMi = new JMenuItem(\"Open\", iconOpen);
JMenuItem saveMi = new JMenuItem(\"Save\", iconSave);
JMenuItem exitMi = new JMenuItem(\"Exit\", iconExit);
exitMi.setToolTipText(\"Exit this application\");
exitMi.addActionListener((ActionEvent event) -> {
System.exit(0);
});
fileMenu.add(newMi);
fileMenu.add(openMi);
fileMenu.add(saveMi);
fileMenu.addSeparator();
fileMenu.add(impMenu);
fileMenu.addSeparator();
fileMenu.add(exitMi);
menubar.add(fileMenu);
setJMenuBar(menubar);
}
public static void main(String[] arg) {
EventQueue.invokeLater(() -> {
MySubmenuEx ex = new MySubmenuEx();
ex.setVisible(true);
});
}
}
------------second------------
package com.arun;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import static javax.swing.Action.MNEMONIC_KEY;
import static javax.swing.Action.SMALL_ICON;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
public class MyShortCutsEx extends JFrame {
public MyShortCutsEx() {
initUI();
}
private void initUI() {
createMyMenuBar();
setTitle(\"Mnemonics and accelerators Use case\");
setSize(360, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private void createMyMenuBar() {
JMenuBar menubar = new JMenuBar();
ImageIcon iconNew = new ImageIcon(\"new.png\");
ImageIcon iconOpen = new ImageIcon(\"open.png\");
ImageIcon iconSave = new ImageIcon(\"save.png\");
ImageIcon iconExit = new ImageIcon(\"exit.png\");
JMenu fileMenu = new JMenu(\"File\");
fileMenu.setMnemonic(KeyEvent.VK_F);
JMenuItem newMi = new JMenuItem(new MenuItemAction(\"New\", iconNew,
KeyEvent.VK_N));
JMenuItem openMi = new JMenuItem(new MenuItemAction(\"Open\", iconOpen,
KeyEvent.VK_O));
JMenuItem saveMi = new JMenuItem(new MenuItemAction(\"Save\", iconSave,
KeyEvent.VK_S));
JMenuItem exitMi = new JMenuItem(\"Exit\", iconExit);
exitMi.setMnemonic(KeyEvent.VK_E);
exitMi.setToolTipText(\"Exit application\");
exitMi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
ActionEvent.CTRL_MASK));
exitMi.addActionListener((ActionEvent event) -> {
System.exit(0);
});
fileMenu.add(newMi);
fileMenu.add(openMi);
fileMenu.add(saveMi);
fileMenu.addSeparator();
fileMenu.add(exitMi);
menubar.add(fileMenu);
setJMenuBar(menubar);
}
private class MenuItemAction extends AbstractAction {
public MenuItemAction(String text, ImageIcon icon,
Integer mnemonic) {
super(text);
putValue(SMALL_ICON, icon);
putValue(MNEMONIC_KEY, mnemonic);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
}
}
public static void main(String[] arg) {
EventQueue.invokeLater(() -> {
MyShortCutsEx ex = new MyShortCutsEx();
ex.setVisible(true);
});
}
}
//Here menu item is activated by the Alt+F+E key combination.
-------------third-------------
package com.arun;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
public class MyPopupMenuEx extends JFrame {
private JPopupMenu pmenu;
public MyPopupMenuEx() {
initUI();
}
private void initUI() {
createMyPopupMenu();//this will create popup as asked in question
setTitle(\"JPopupMenu\");
setSize(300, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void createMyPopupMenu() {
pmenu = new JPopupMenu();
JMenuItem maxMi = new JMenuItem(\"Maximize\");
maxMi.addActionListener((ActionEvent e) -> {
if (getExtendedState() != JFrame.MAXIMIZED_BOTH) {
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
});
pmenu.add(maxMi);
JMenuItem quitMi = new JMenuItem(\"Quit\");
quitMi.addActionListener((ActionEvent e) -> {
System.exit(0);
});
pmenu.add(quitMi);
addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
pmenu.show(e.getComponent(), e.getX(), e.getY());
}
}
});
}
public static void main(String[] arg) {
EventQueue.invokeLater(() -> {
MyPopupMenuEx pm = new MyPopupMenuEx();
pm.setVisible(true);
});
}
}
//This example shows a popup menu with two commands.
//The first command maximizes the window, the second quits the application.




