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

📄 configurablemenubar.java

📁 本系统是用 java 语言实现的一个 Email客户端
💻 JAVA
字号:
package net.suberic.util.gui;import javax.swing.*;import net.suberic.util.VariableBundle;import java.util.Hashtable;import java.util.StringTokenizer;import java.util.MissingResourceException;import javax.swing.Action;/** * This is a JMenuBar which implements the ConfigurableUI interface, and * therefore may be dynamically created using a VariableBundle and key, * and updated using an array of Actions. */public class ConfigurableMenuBar extends JMenuBar implements ConfigurableUI {    // the latest commands list.  i'm storing this for now because i     // can't do a JButton.removeActionListeners().    private Hashtable commands = new Hashtable();    /**     * This creates a new ConfigurableMenuBar using the menubarID as the     * configuration key, and vars as the source for the values of all the     * properties.     *     * If menubarID doesn't exist in vars, then this returns an empty      * Menubar.     */    public ConfigurableMenuBar(String menuBarID, VariableBundle vars) {	super();		configureComponent(menuBarID, vars);    }    /**     * This configures the Menubar using the given menubarID and      * VariableBundle.     *     * As defined in interface net.suberic.util.gui.ConfigurableUI.     */    public void configureComponent(String menubarID, VariableBundle vars) {	if ((menubarID != null) && (vars.getProperty(menubarID, "") != "")) {	    StringTokenizer tokens = new StringTokenizer(vars.getProperty(menubarID, ""), ":");	    while (tokens.hasMoreTokens()) {		String currentMenu = tokens.nextToken();		ConfigurableMenu m;		if (vars.getProperty(menubarID + "." + currentMenu + ".class", "").equals("")) {		    m = new ConfigurableMenu(menubarID + "." + currentMenu, vars);		} else {		    // this means we're using a custom Menu.		    try {			Class menuClass = Class.forName(vars.getProperty(menubarID + "." + currentMenu + ".class", "net.suberic.util.gui.ConfigurableMenu"));			m = (ConfigurableMenu) menuClass.newInstance();			m.configureComponent(menubarID + "." + currentMenu, vars);		    } catch (Exception e) {			// if we get any errors, just create a plain 			// ConfigurableMenu.			m = new ConfigurableMenu(menubarID + "." + currentMenu, vars);		    }		}		if (m != null) {			this.add(m);		}	    }	}    }                /**     * As defined in net.suberic.util.gui.ConfigurableUI     */    public void setActive(javax.swing.Action[] newActions) {	Hashtable tmpHash = new Hashtable();	if (newActions != null && newActions.length > 0) {	    for (int i = 0; i < newActions.length; i++) {		String cmdName = (String)newActions[i].getValue(Action.NAME);		tmpHash.put(cmdName, newActions[i]);	    }	}	setActive(tmpHash);	    }    /**     * As defined in net.suberic.util.gui.ConfigurableUI     */    public void setActive(Hashtable newCommands) {	commands = newCommands;	setActiveMenus();    }    private void setActiveMenus() {	for (int i = 0; i < getMenuCount(); i++) {	    ((ConfigurableMenu)getMenu(i)).setActive(commands);	}    }    /**     * This gets an action from the supported commands.  If there is no     * supported action, it returns null     */        public Action getAction(String command) {	return (Action)commands.get(command);    }}

⌨️ 快捷键说明

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