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

So erhalten Sie den Schlüssel von ActionMap

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2024-02-09 13:15:18
nach vorne
953 Leute haben es durchsucht

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));
    }
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

Lösung

Versuchen Sie Folgendes:

int keyCode = (int) e.getActionCommand().charAt(0);
Nach dem Login kopieren
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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage