The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > javax.swing  [141 examples] > Actions  [3 examples]

e856. Listing the Actions in a Component

This example demonstrates how to list all the actions in a component.
    ActionMap map = component.getActionMap();
    
    // List actions in the component
    list(map, map.keys());
    
    // List actions in the component and in all parent action maps
    list(map, map.allKeys());
    
    public static void list(ActionMap map, Object[] actionKeys) {
        if (actionKeys == null) {
            return;
        }
        for (int i=0; i<actionKeys.length; i++) {
            // Get the action bound to this action key
            while (map.get(actionKeys[i]) == null) {
                map = map.getParent();
            }
            Action action = (Action)map.get(actionKeys[i]);
        }
    }
A text component not only has an action map with actions, it also has keymaps with actions. Moreover, every keymap has a default action to handle any typed character key events not handled by any input map or keymap. The following code retrieves actions from these objects:
    // List the actions in the keymaps
    if (component instanceof JTextComponent) {
        JTextComponent textComp = (JTextComponent)component;
        Keymap keymap = textComp.getKeymap();
    
        while (keymap != null) {
            // Get actions in the keymap
            Action[] actions = keymap.getBoundActions();
            for (int i=0; i<actions.length; i++) {
                Action action = actions[i];
            }
    
            // Get the default action in the keymap
            Action defaultAction = keymap.getDefaultAction();
            keymap = keymap.getResolveParent();
        }
    }

 Related Examples
e855. Creating an Action
e857. Enabling an Action

See also: JButton    JCheckBox    JComboBox    JDesktop and JInternalFrame    JFrame, JWindow, JDialog    JLabel    JList    JProgressBar    JRadioButton    JScrollPane    JSlider    JSpinner    JSplitPane    JTabbedPane    JToolBar    Keystrokes and Input Maps    Layout    Look and Feel    Menus    Progress Monitor    The Screen    Tool Tips    UI Default Values   


© 2002 Addison-Wesley.