You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Swing:如何判断数据库获取的整数是否为有效键盘键码?

判断Java Swing键码是否有效的解决方案

嘿,作为Java Swing新手碰到这个问题太正常啦,我来给你捋捋可行的解决办法~

Java Swing本身没有直接返回布尔值的内置函数来判断一个整数是不是有效的键盘键码,但我们可以利用现有的API轻松实现这个判断逻辑,正好你提到的KeyEvent.getKeyText()就是核心工具!

方法一:基于getKeyText()的返回值判断

当传入的整数是无效键码时,KeyEvent.getKeyText(int keyCode)会返回字符串"Unknown"(默认英文环境下)。我们可以通过这个特性来封装一个判断方法:

import java.awt.event.KeyEvent;

public class KeyCodeValidator {
    public static boolean isValidKeyCode(int keyCode) {
        String keyText = KeyEvent.getKeyText(keyCode);
        // 对比默认的"未知"键文本
        return !"Unknown".equals(keyText);
    }
}

方法二:适配多语言环境的健壮写法

如果你的程序需要支持多语言(比如中文环境下会返回“未知”而不是“Unknown”),更稳妥的方式是通过UIManager获取系统对应的“未知键”文本,这样兼容性更好:

import java.awt.event.KeyEvent;
import javax.swing.UIManager;

public class KeyCodeValidator {
    public static boolean isValidKeyCode(int keyCode) {
        String keyText = KeyEvent.getKeyText(keyCode);
        String unknownKeyText = UIManager.getString("unknownKeyText");
        return !unknownKeyText.equals(keyText);
    }
}

额外说明

  • 这个逻辑完全符合你举的例子:传入119(F8的键码)会返回true,传入134319会返回false。
  • 如果你还需要验证字符对应的键码,可以用KeyEvent.getExtendedKeyCodeForChar(),但对于从数据库获取的纯整数键码,上面的方法更直接。

内容的提问来源于stack exchange,提问作者gengencera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:13:53