⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menubuilder.java

📁 方便大家也方便自己啊。
💻 JAVA
字号:
package jgantt;import java.awt.event.ActionListener;import java.util.Hashtable;import java.util.ResourceBundle;import java.util.StringTokenizer;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPopupMenu;import javax.swing.KeyStroke;/** * Generador de menues.  * TODO: Convertirlo en una clase dinamica.... mas adelante. *  * @author csilva */public class MenuBuilder {	private static ResourceBundle bundle = ResourceBundle.getBundle("jgantt.Menues");				/**	 * Crea la barra de menues de acuerdo al contenido de 	 * una propiedad.	 * 	 * @param listener avisar los mensajes de los menues	 * @return JMenuBar with the items configured and the listeners asociated with this object	 */	public static JMenuBar buildMenuBar(ActionListener listener, String menuName, Hashtable menues) {				JMenuBar menuBar = new JMenuBar();		menuBar.setOpaque(true);		String menuConfig = bundle.getString(menuName);		StringTokenizer st = new StringTokenizer(menuConfig, " ");		while (st.hasMoreTokens()) {			String menuId = st.nextToken();			JMenu menu = new JMenu(menuId);			String menuDesc = bundle.getString("desc." + menuId);			StringTokenizer dt = new StringTokenizer(menuDesc, "|");			menu.setText(dt.nextToken());			menu.setMnemonic(dt.nextToken().charAt(0));			buildMenues(listener, menuId, menu, menues);			menuBar.add(menu);		}		return menuBar;	}	/**	 * Construye los items de un menu pulldown.	 * El menu se obtiene de:	 * <pre>	 * menu.<i>menuId</i>= item1 item2	 * desc.item1 = <i>Text</i>|<i>mnemonic</i>[|<i>accelerator keystroke</i>] 	 * </pre>	 * @param listener listener a asociar	 * @param bundle bundle con la descripcion del menu	 * @param menuId Id del menu	 * @param menu Menu desde el cual se colgaran los items	 */	static private void buildMenues(		ActionListener listener,				String menuId,		JMenu menu, Hashtable menues) {		String sub = bundle.getString("menu." + menuId);		StringTokenizer mt = new StringTokenizer(sub, " ");		while (mt.hasMoreTokens()) {			String itemId = mt.nextToken();			if ("-".equals(itemId)) {				menu.addSeparator();				continue;			}			// items			String itemDesc = bundle.getString("desc." + itemId);			StringTokenizer smt = new StringTokenizer(itemDesc, "|");			JMenuItem mi = new JMenuItem(itemId);			mi.setActionCommand(itemId);			mi.setText(smt.nextToken());			mi.setMnemonic(smt.nextToken().charAt(0));			if (smt.hasMoreElements())				mi.setAccelerator(KeyStroke.getKeyStroke(smt.nextToken()));			mi.addActionListener(listener);			menu.add(mi);			menues.put(itemId, mi);		}	}					/**	 * Construye los items de un menu popup.	 * El menu se obtiene desde un archivo de propiedades: jgantt.MainMenu	 * <pre>	 * menu.<i>menuId</i>= item1 item2	 * desc.item1 = <i>Text</i>|<i>mnemonic</i>[|<i>accelerator keystroke</i>] 	 * </pre>	 * @param listener listener a asociar	 * @param bundle bundle con la descripcion del menu	 * @param menuId Id del menu	 * @param menu Menu desde el cual se colgaran los items	 */	public static JPopupMenu buildPopup(ActionListener listener, String menuId) {				JPopupMenu popup = new JPopupMenu("popup");		String sub = bundle.getString("menu." + menuId);		StringTokenizer mt = new StringTokenizer(sub, " ");		while (mt.hasMoreTokens()) {			String itemId = mt.nextToken();			if ("-".equals(itemId)) {				popup.addSeparator();				continue;			}			// items			String itemDesc = bundle.getString("desc." + itemId);			StringTokenizer smt = new StringTokenizer(itemDesc, "|");			JMenuItem mi = new JMenuItem(itemId);			mi.setActionCommand(itemId);			mi.setText(smt.nextToken());			mi.setMnemonic(smt.nextToken().charAt(0));			if (smt.hasMoreElements())				mi.setAccelerator(KeyStroke.getKeyStroke(smt.nextToken()));			mi.addActionListener(listener);			popup.add(mi);		}		return popup;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -