Heim  >  Artikel  >  So erhalten Sie den Schlüssel von ActionMap

So erhalten Sie den Schlüssel von ActionMap

WBOY
WBOYnach vorne
2024-02-09 13:15:18846Durchsuche

Der PHP-Editor Xiaoxin stellt Ihnen heute vor, wie Sie den Schlüssel von ActionMap erhalten. Beim Schreiben von PHP-Programmen verwenden wir häufig assoziative Arrays (auch Wörterbücher genannt), und ActionMap ist ein gängiges assoziatives Array. Indem wir den Schlüssel verwenden, um den entsprechenden Wert zu erhalten, können wir eine flexiblere Datenverarbeitung und Logiksteuerung erreichen. Im Folgenden stellen wir die Methode zum Erhalten von Schlüsseln von ActionMap im Detail vor, um allen zu helfen, diese Technik besser zu verstehen und anzuwenden.

Frageninhalt

Ich möchte wissen, wie ich den Schlüsselcode von AbstractAction in der Aktionskarte bekomme.

for (int key = 37; key <= 122; key++) {
    this.key = key;

    if(!KeyEvent.getKeyText(key).contains("Unknown keyCode")) {
                
        if(KeyInputManager.getInputManager().getOrDefault(key, null) == null)
            KeyInputManager.getInputManager().put(key, true);
                
        component.getActionMap().put(KeyEvent.getKeyText(key), new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                    int keyCode = // TODO: GET KEY CODE HERE
                    KeyInputManager.getInputManager().replace(keyCode, true);
            }
        });
        component.getInputMap().put(KeyStroke.getKeyStroke(key, 0, false), KeyEvent.getKeyText(key));
    }
}

Ich versuche den Zustand aller Tasten (gedrückt oder nicht gedrückt) in HashMap中,该KeyInputManager是通过getInputManager访问的。要检查是否按下了某个键,我们可以使用 KeyInputManager.getKeyDown(keyCode) zu speichern Dies ist der Code für KeyInputManager

public class KeyInputManager {
    private static final HashMap<Integer, Boolean> keysDown = new HashMap<Integer, Boolean>();
    
    public static final boolean keyDown(int keyCode) {
        return keysDown.getOrDefault(keyCode, false);
    }
    
    public static HashMap<Integer, Boolean> getInputManager() {
        return keysDown;
    }
}

Lösung

Versuchen Sie Folgendes:

int keyCode = (int) e.getActionCommand().charAt(0);
Der Aktionsbefehl von

ActionEvent enthält grundsätzlich den Schlüssel, und da Sie Einzelzeichenschlüssel verwenden, sollte das erste Zeichen den ganzzahligen Schlüsselcode ergeben.

Das obige ist der detaillierte Inhalt vonSo erhalten Sie den Schlüssel von ActionMap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen