📄 mainmenu.java
字号:
item = (JCheckBoxMenuItem)menuItemCache.get("viewSearchTools"); item.setSelected(viewSearch); item = (JCheckBoxMenuItem)menuItemCache.get("viewDatabaseTools"); item.setSelected(viewDatabase); item = (JCheckBoxMenuItem)menuItemCache.get("viewBrowserTools"); item.setSelected(viewBrowser); item = (JCheckBoxMenuItem)menuItemCache.get("viewImportExportTools"); item.setSelected(viewImportExport); item = (JCheckBoxMenuItem)menuItemCache.get("viewSystemTools"); item.setSelected(viewSystem); } public void setViewOption(String key, boolean show) { if (menuItemCache.containsKey(key)) { JCheckBoxMenuItem item = (JCheckBoxMenuItem)menuItemCache.get(key); item.setSelected(show); } } /** view check box menu items cache names and property keys */ private Map<String,String> viewMenuItems; private void setCheckBoxMenuItemSelections(Map<String,String> cache) { for (Iterator i = cache.keySet().iterator(); i.hasNext();) { String key = i.next().toString(); boolean checked = SystemProperties.getBooleanProperty("user", cache.get(key)); JCheckBoxMenuItem item = (JCheckBoxMenuItem)menuItemCache.get(key); item.setSelected(checked); } } public void setViewOptions() { setCheckBoxMenuItemSelections(viewMenuItems); } private static final String MENUS = "menus"; private static final String MENU = "menu"; private static final String MENU_ITEM = "menu-item"; private static final String NAME = "name"; private static final String TYPE = "type"; private static final String ID = "id"; private static final String BUTTON_GROUP = "button-group"; private static final String MNEMONIC = "mnemonic"; private static final String SEPARATOR = "separator"; private static final String LISTENER = "listener"; private static final String CACHE_NAME = "cache-name"; private static final String TOOL_TIP = "tool-tip"; private static final String ACTION_COMMAND = "action-command"; private static final String ACCEL_KEY = "accel-key"; private static final String VIEW_MENU_PROPERTY_KEY = "property-key"; private static final String NULL_VALUE = "{-NULL-}"; class MenuHandler extends DefaultHandler { private List<JMenu> menus; private Map<String,ActionListener> listeners; private Map<String,ButtonGroup> buttonGroups; private int menuCount; private CharArrayWriter contents; public MenuHandler() { menuCount = -1; listeners = new HashMap<String,ActionListener>(); buttonGroups = new HashMap<String,ButtonGroup>(); menus = new ArrayList<JMenu>(); contents = new CharArrayWriter(); } public void startElement(String nameSpaceURI, String localName, String qName, Attributes attrs) { String value = null; contents.reset(); if (localName.equals(MENU)) { String menuName = attrs.getValue(NAME); JMenu menu = null; value = attrs.getValue(MNEMONIC); if (!MiscUtils.isNull(value)) { menu = builder.createMenu(menuName, value.charAt(0)); } else { menu = builder.createMenu(menuName, -1); } menus.add(menu); menuCount++; value = attrs.getValue(CACHE_NAME); if (!MiscUtils.isNull(value)) { if (menuCache == null) { menuCache = new HashMap<String,JMenu>(); } menuCache.put(value, menu); } } else if (localName.equals(MENU_ITEM)) { int menuType = 0; value = attrs.getValue(TYPE); if (!MiscUtils.isNull(value)) { menuType = Integer.parseInt(value); } JMenuItem menuItem = null; switch(menuType) { case MenuBuilder.ITEM_RADIO: menuItem = new JRadioButtonMenuItem(); break; case MenuBuilder.ITEM_CHECK: menuItem = new JCheckBoxMenuItem(); break; default: menuItem = new JMenuItem(); break; } value = attrs.getValue(ID); if (!MiscUtils.isNull(value)) { if (value.equals(SEPARATOR)) { getMenu(menuCount).addSeparator(); return; } else { menuItem.setAction(ActionBuilder.get(value)); } } value = attrs.getValue(MNEMONIC); if (!MiscUtils.isNull(value)) { menuItem.setMnemonic(value.charAt(0)); } value = attrs.getValue(NAME); if (!MiscUtils.isNull(value)) { menuItem.setText(value); } value = attrs.getValue(TOOL_TIP); if (!MiscUtils.isNull(value)) { menuItem.setToolTipText(value); } value = attrs.getValue(ACTION_COMMAND); if (!MiscUtils.isNull(value)) { menuItem.setActionCommand(value); } value = attrs.getValue(LISTENER); if (!MiscUtils.isNull(value)) { if (listeners.containsKey(value)) { menuItem.addActionListener(listeners.get(value)); } else { try { Class _class = Class.forName(value, true, ClassLoader.getSystemClassLoader()); Object object = _class.newInstance(); ActionListener listener = (ActionListener)object; menuItem.addActionListener(listener); listeners.put(value, listener); } catch (ClassNotFoundException e) { e.printStackTrace(); throw new InternalError(); } catch (Exception e) { e.printStackTrace(); } } } value = attrs.getValue(ACCEL_KEY); if (!MiscUtils.isNull(value)) { if (value.equals(NULL_VALUE)) { menuItem.setAccelerator(null); } else { menuItem.setAccelerator(KeyStroke.getKeyStroke(value)); } } value = attrs.getValue(BUTTON_GROUP); if (!MiscUtils.isNull(value)) { if (buttonGroups.containsKey(value)) { ButtonGroup bg = buttonGroups.get(value); bg.add(menuItem); } else { ButtonGroup bg = new ButtonGroup(); buttonGroups.put(value, bg); bg.add(menuItem); } } value = attrs.getValue(CACHE_NAME); if (!MiscUtils.isNull(value)) { if (menuItemCache == null) { menuItemCache = new HashMap<String,JMenuItem>(); } menuItemCache.put(value, menuItem); if (value.startsWith("view")) { if (viewMenuItems == null) { viewMenuItems = new HashMap<String,String>(); } String propertyKey = attrs.getValue(VIEW_MENU_PROPERTY_KEY); if (!MiscUtils.isNull(propertyKey)) { viewMenuItems.put(value, propertyKey); } } } menuItem.setIcon(null); getMenu(menuCount).add(menuItem); } } public void endElement(String nameSpaceURI, String localName, String qName) { if (localName.equals(MENU)) { if (menuCount > 0) { getMenu(menuCount-1).add(getMenu(menuCount)); } else { MainMenu.this.add(getMenu(menuCount)); } menus.remove(menuCount); menuCount--; } else if (localName.equals(MENUS)) { menus.clear(); menus = null; listeners.clear(); listeners = null; buttonGroups.clear(); buttonGroups = null; } } private JMenu getMenu(int index) { if (index >= 0) { return menus.get(index); } else { return null; } } public void characters(char[] data, int start, int length) { contents.write(data, start, length); } public void ignorableWhitespace(char[] data, int start, int length) { characters(data, start, length); } public void error(SAXParseException spe) throws SAXException { throw new SAXException(spe.getMessage()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -