Java by API/javax.swing/JMenu
Содержание
JMenu: add(Component c)
<source lang="java">
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JSeparator; public class Main extends JFrame {
public Main() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("File"); bar.add(menu); menu.add(new JMenuItem("Close")); menu.add(new JSeparator()); // SEPARATOR menu.add(new JMenuItem("Exit")); setJMenuBar(bar); add(new JLabel("A placeholder")); pack(); setSize(300, 300); setVisible(true); } public static void main(String arg[]) { new Main(); }
}
</source>
<source lang="java">
import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JSeparator; public class Main extends JFrame {
public Main() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("File"); bar.add(menu); menu.add(new JMenuItem("Close")); menu.add(new JSeparator()); // SEPARATOR menu.add(new JMenuItem("Exit")); setJMenuBar(bar); add(new JLabel("A placeholder")); pack(); setSize(300, 300); setVisible(true); } public static void main(String arg[]) { new Main(); }
}
</source>
JMenu: addMenuListener(MenuListener l)
<source lang="java">
import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; public class Main {
public static void main(final String args[]) { JFrame frame = new JFrame("MenuSample Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menuBar = new JMenuBar(); // File Menu, F - Mnemonic JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(fileMenu); fileMenu.addMenuListener(new MenuListener() { public void menuSelected(MenuEvent e) { System.out.println("menuSelected"); } public void menuDeselected(MenuEvent e) { System.out.println("menuDeselected"); } public void menuCanceled(MenuEvent e) { System.out.println("menuCanceled"); } }); // File->New, N - Mnemonic JMenuItem newMenuItem = new JMenuItem("New"); fileMenu.add(newMenuItem); frame.setJMenuBar(menuBar); frame.setSize(350, 250); frame.setVisible(true); }
}
</source>
JMenu: addSeparator()
<source lang="java">
import java.awt.Event; import javax.swing.ButtonGroup; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; import javax.swing.KeyStroke; public class MainClass extends JFrame {
public MainClass() { setDefaultCloseOperation(EXIT_ON_CLOSE); setJMenuBar(menuBar); JMenu fileMenu = new JMenu("File"); JMenu elementMenu = new JMenu("Elements"); fileMenu.setMnemonic("F"); elementMenu.setMnemonic("E"); // Construct the file pull down menu newItem = fileMenu.add("New"); openItem = fileMenu.add("Open"); closeItem = fileMenu.add("Close"); fileMenu.addSeparator(); saveItem = fileMenu.add("Save"); saveAsItem = fileMenu.add("Save As..."); JMenu colorMenu = new JMenu("Color"); fileMenu.addSeparator(); printItem = fileMenu.add("Print"); newItem.setAccelerator(KeyStroke.getKeyStroke("N", Event.CTRL_MASK)); openItem.setAccelerator(KeyStroke.getKeyStroke("O", Event.CTRL_MASK)); saveItem.setAccelerator(KeyStroke.getKeyStroke("S", Event.CTRL_MASK)); printItem.setAccelerator(KeyStroke.getKeyStroke("P", Event.CTRL_MASK)); elementMenu.add(lineItem = new JRadioButtonMenuItem("Line", true)); elementMenu .add(rectangleItem = new JRadioButtonMenuItem("Rectangle", false)); elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle", false)); elementMenu.add(curveItem = new JRadioButtonMenuItem("Curve", false)); ButtonGroup types = new ButtonGroup(); types.add(lineItem); types.add(rectangleItem); types.add(circleItem); types.add(curveItem); lineItem.setAccelerator(KeyStroke.getKeyStroke("L", Event.CTRL_MASK)); rectangleItem.setAccelerator(KeyStroke.getKeyStroke("E", Event.CTRL_MASK)); circleItem.setAccelerator(KeyStroke.getKeyStroke("I", Event.CTRL_MASK)); curveItem.setAccelerator(KeyStroke.getKeyStroke("V", Event.CTRL_MASK)); elementMenu.addSeparator(); elementMenu.add(colorMenu); // Add the sub-menu colorMenu.add(redItem = new JCheckBoxMenuItem("Red", false)); colorMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow", false)); colorMenu.add(greenItem = new JCheckBoxMenuItem("Green", false)); colorMenu.add(blueItem = new JCheckBoxMenuItem("Blue", true)); // Add element color accelerators redItem.setAccelerator(KeyStroke.getKeyStroke("R", Event.CTRL_MASK)); yellowItem.setAccelerator(KeyStroke.getKeyStroke("Y", Event.CTRL_MASK)); greenItem.setAccelerator(KeyStroke.getKeyStroke("G", Event.CTRL_MASK)); blueItem.setAccelerator(KeyStroke.getKeyStroke("B", Event.CTRL_MASK)); menuBar.add(fileMenu); menuBar.add(elementMenu); } private JMenuBar menuBar = new JMenuBar(); // File menu items private JMenuItem newItem, openItem, closeItem, saveItem, saveAsItem, printItem; // Element menu items private JRadioButtonMenuItem lineItem, rectangleItem, circleItem, curveItem, textItem; private JCheckBoxMenuItem redItem, yellowItem, greenItem, blueItem; public static void main(String[] args) { JFrame aWindow = new MainClass(); aWindow.setSize(200,200); aWindow.setVisible(true); }
}
</source>
JMenu: add(String text)
<source lang="java">
import java.awt.Event; import javax.swing.ButtonGroup; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; import javax.swing.KeyStroke; public class MainClass extends JFrame {
public MainClass() { setDefaultCloseOperation(EXIT_ON_CLOSE); setJMenuBar(menuBar); JMenu fileMenu = new JMenu("File"); JMenu elementMenu = new JMenu("Elements"); fileMenu.setMnemonic("F"); elementMenu.setMnemonic("E"); // Construct the file pull down menu newItem = fileMenu.add("New"); openItem = fileMenu.add("Open"); closeItem = fileMenu.add("Close"); fileMenu.addSeparator(); saveItem = fileMenu.add("Save"); saveAsItem = fileMenu.add("Save As..."); JMenu colorMenu = new JMenu("Color"); fileMenu.addSeparator(); printItem = fileMenu.add("Print"); newItem.setAccelerator(KeyStroke.getKeyStroke("N", Event.CTRL_MASK)); openItem.setAccelerator(KeyStroke.getKeyStroke("O", Event.CTRL_MASK)); saveItem.setAccelerator(KeyStroke.getKeyStroke("S", Event.CTRL_MASK)); printItem.setAccelerator(KeyStroke.getKeyStroke("P", Event.CTRL_MASK)); elementMenu.add(lineItem = new JRadioButtonMenuItem("Line", true)); elementMenu .add(rectangleItem = new JRadioButtonMenuItem("Rectangle", false)); elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle", false)); elementMenu.add(curveItem = new JRadioButtonMenuItem("Curve", false)); ButtonGroup types = new ButtonGroup(); types.add(lineItem); types.add(rectangleItem); types.add(circleItem); types.add(curveItem); lineItem.setAccelerator(KeyStroke.getKeyStroke("L", Event.CTRL_MASK)); rectangleItem.setAccelerator(KeyStroke.getKeyStroke("E", Event.CTRL_MASK)); circleItem.setAccelerator(KeyStroke.getKeyStroke("I", Event.CTRL_MASK)); curveItem.setAccelerator(KeyStroke.getKeyStroke("V", Event.CTRL_MASK)); elementMenu.addSeparator(); elementMenu.add(colorMenu); // Add the sub-menu colorMenu.add(redItem = new JCheckBoxMenuItem("Red", false)); colorMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow", false)); colorMenu.add(greenItem = new JCheckBoxMenuItem("Green", false)); colorMenu.add(blueItem = new JCheckBoxMenuItem("Blue", true)); // Add element color accelerators redItem.setAccelerator(KeyStroke.getKeyStroke("R", Event.CTRL_MASK)); yellowItem.setAccelerator(KeyStroke.getKeyStroke("Y", Event.CTRL_MASK)); greenItem.setAccelerator(KeyStroke.getKeyStroke("G", Event.CTRL_MASK)); blueItem.setAccelerator(KeyStroke.getKeyStroke("B", Event.CTRL_MASK)); menuBar.add(fileMenu); menuBar.add(elementMenu); } private JMenuBar menuBar = new JMenuBar(); // File menu items private JMenuItem newItem, openItem, closeItem, saveItem, saveAsItem, printItem; // Element menu items private JRadioButtonMenuItem lineItem, rectangleItem, circleItem, curveItem, textItem; private JCheckBoxMenuItem redItem, yellowItem, greenItem, blueItem; public static void main(String[] args) { JFrame aWindow = new MainClass(); aWindow.setSize(200,200); aWindow.setVisible(true); }
}
</source>
JMenu: getMenuComponentCount()
<source lang="java">
import java.awt.ruponent; import java.awt.ruponentOrientation; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; public class MainClass extends JFrame {
public MainClass() { super("MainClass"); Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); contentPane.add(new JButton("OK")); contentPane.add(new JButton("Cancel")); applyOrientation(this, ComponentOrientation.RIGHT_TO_LEFT); } public static void main(String[] argv) { JFrame frame = new MainClass(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.pack(); frame.setVisible(true); } private void applyOrientation(Component c, ComponentOrientation o) { c.setComponentOrientation(o); if (c instanceof JMenu) { JMenu menu = (JMenu) c; int ncomponents = menu.getMenuComponentCount(); for (int i = 0; i < ncomponents; ++i) { applyOrientation(menu.getMenuComponent(i), o); } } else if (c instanceof Container) { Container container = (Container) c; int ncomponents = container.getComponentCount(); for (int i = 0; i < ncomponents; ++i) { applyOrientation(container.getComponent(i), o); } } }
}
</source>
JMenu: setMnemonic(KeyEvent.VK_O)
<source lang="java">
import java.awt.event.KeyEvent; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JRadioButtonMenuItem; public class MainClass {
public static void main(String args[]) { JFrame f = new JFrame("JRadioButtonMenuItem Sample"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("Options"); menu.setMnemonic(KeyEvent.VK_O); ButtonGroup group = new ButtonGroup(); JRadioButtonMenuItem menuItem = new JRadioButtonMenuItem("A"); group.add(menuItem); menu.add(menuItem); menuItem = new JRadioButtonMenuItem("B"); group.add(menuItem); menu.add(menuItem); menuItem = new JRadioButtonMenuItem("C"); group.add(menuItem); menu.add(menuItem); bar.add(menu); f.setJMenuBar(bar); f.setSize(300, 200); f.setVisible(true); }
}
</source>
new JMenu(String s)
<source lang="java">
import java.awt.event.KeyEvent; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class Main {
public static void main(final String args[]) { JFrame frame = new JFrame("MenuSample Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menuBar = new JMenuBar(); // File Menu, F - Mnemonic JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(fileMenu); // File->New, N - Mnemonic JMenuItem newMenuItem = new JMenuItem("New", KeyEvent.VK_N); fileMenu.add(newMenuItem); JCheckBoxMenuItem caseMenuItem = new JCheckBoxMenuItem("Case Sensitive"); caseMenuItem.setMnemonic(KeyEvent.VK_C); fileMenu.add(caseMenuItem); frame.setJMenuBar(menuBar); frame.setSize(350, 250); frame.setVisible(true); }
}
</source>