List of usage examples for javax.swing JMenuItem getMnemonic
public int getMnemonic()
From source file:Main.java
/** Brings the destination menu item into sync with the source item. */ protected static void syncMenuItem(final JMenuItem source, final JMenuItem dest) { final boolean enabled = source.isEnabled(); if (dest.isEnabled() != enabled) dest.setEnabled(enabled);//from w ww .j a v a2s . c o m final int mnemonic = source.getMnemonic(); if (dest.getMnemonic() != mnemonic) dest.setMnemonic(mnemonic); final String text = source.getText(); if (dest.getText() != text) dest.setText(text); final KeyStroke accel = source.getAccelerator(); if (dest.getAccelerator() != accel) dest.setAccelerator(accel); }
From source file:org.kepler.gui.MenuMapper.java
/** * Recurse through all the submenu heirarchy beneath the passed JMenu * parameter, and for each "leaf node" (ie a menu item that is not a * container for other menu items), add the Action and its menu path to the * passed Map/*from w w w . j av a2 s.co m*/ * * @param nextMenuItem * the JMenu to recurse into * @param menuPathBuff * a delimited String representation of the hierarchical "path" * to this menu item. This will be used as the key in the * actionsMap. For example, the "Graph Editor" menu item beneath * the "New" item on the "File" menu would have a menuPath of * File->New->Graph Editor. Delimeter is "->" (no quotes), and * spaces are allowed within menu text strings, but not around * the delimiters; i.e: New->Graph Editor is OK, but File ->New * is not. * @param MENU_PATH_DELIMITER * String * @param actionsMap * the Map containing key => value pairs of the form: menuPath * (as described above) => Action (the javax.swing.Action * assigned to this menu item) */ public static void storePTIIMenuItems(JMenuItem nextMenuItem, StringBuffer menuPathBuff, final String MENU_PATH_DELIMITER, Map<String, Action> actionsMap) { menuPathBuff.append(MENU_PATH_DELIMITER); if (nextMenuItem != null && nextMenuItem.getText() != null) { String str = nextMenuItem.getText(); // do not make the recent files menu item upper case since // it contains paths in the file system. if (menuPathBuff.toString().startsWith("FILE->RECENT FILES->")) { menuPathBuff = new StringBuffer("File->Recent Files->"); } else { str = str.toUpperCase(); } menuPathBuff.append(str); } if (isDebugging) { log.debug(menuPathBuff.toString()); } // System.out.println(menuPathBuff.toString()); if (nextMenuItem instanceof JMenu) { storePTIITopLevelMenus((JMenu) nextMenuItem, menuPathBuff.toString(), MENU_PATH_DELIMITER, actionsMap); } else { Action nextAction = nextMenuItem.getAction(); // if there is no Action, look for an ActionListener // System.out.println("Processing menu " + nextMenuItem.getText()); if (nextAction == null) { final ActionListener[] actionListeners = nextMenuItem.getActionListeners(); // System.out.println("No Action for " + nextMenuItem.getText() // + "; found " + actionListeners.length // + " ActionListeners"); if (actionListeners.length > 0) { if (isDebugging) { log.debug(actionListeners[0].getClass().getName()); } // ASSUMPTION: there is only one ActionListener nextAction = new AbstractAction() { public void actionPerformed(ActionEvent a) { actionListeners[0].actionPerformed(a); } }; // add all these values - @see diva.gui.GUIUtilities nextAction.putValue(Action.NAME, nextMenuItem.getText()); // System.out.println("storing ptII action for menu " + // nextMenuItem.getText()); nextAction.putValue(GUIUtilities.LARGE_ICON, nextMenuItem.getIcon()); nextAction.putValue(GUIUtilities.MNEMONIC_KEY, new Integer(nextMenuItem.getMnemonic())); nextAction.putValue("tooltip", nextMenuItem.getToolTipText()); nextAction.putValue(GUIUtilities.ACCELERATOR_KEY, nextMenuItem.getAccelerator()); nextAction.putValue("menuItem", nextMenuItem); } else { if (isDebugging) { log.warn("No Action or ActionListener found for " + nextMenuItem.getText()); } } } if (!actionsMap.containsValue(nextAction)) { actionsMap.put(menuPathBuff.toString(), nextAction); if (isDebugging) { log.debug(menuPathBuff.toString() + " :: ACTION: " + nextAction); } } } }