首页 > Java > 正文

如何从ActionMap中获取key

WBOY
发布: 2024-02-09 13:15:18
转载
831人浏览过

php小编小新今天来给大家介绍如何从actionmap中获取key。在编写php程序时,我们经常会使用到关联数组(也称为字典),而actionmap就是一种常见的关联数组。通过使用key来获取对应的值,我们可以实现更灵活的数据处理和逻辑控制。下面我们将详细介绍从actionmap中获取key的方法,帮助大家更好地理解和应用这一技巧。

问题内容

我想知道如何从操作映射中的 AbstractAction 获取关键代码。

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));
    }
}
登录后复制

我试图将所有按键的状态(按下或未按下)存储在HashMap中,该KeyInputManager是通过getInputManager访问的。要检查是否按下了某个键,我们可以使用 KeyInputManager.getKeyDown(keyCode) 这是 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;
    }
}
登录后复制

解决方法

试试这个:

int keyCode = (int) e.getActionCommand().charAt(0);
登录后复制

ActionEvent 的操作命令基本上包含键,并且由于您使用的是单字符键,因此采用第一个字符应该为您提供整数键代码。

以上就是如何从ActionMap中获取key的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号