我目前让程序显示按下的任何键,范围从字母到数字和符号。问题是,我只希望它显示字母,并对其他所有内容说“无效”。
这是我现在拥有的:
public void keyPressed(KeyEvent e) {
String keyCode = KeyEvent.getKeyText(e.getKeyCode());
statusMsg.setText("You selected " + keyCode);
}
编辑:谢谢大家的帮助!
最佳答案
您可能想使用e.getKeyChar()
相反,如果用户输入 shift + a
,则会为您提供代表 A 的字符例如。也就是说,您有几个选择:
- 您可以编写一个仅接受字母字符的匹配器。这可能看起来像
Matcher matcher = Pattern.compile("[a-zA-Z]").matcher()
。然后你可以查看matcher.matches(keyCode)
(例如keyCode = matcher.matches(keyCode) ? keyCode : "Not Valid"
在你的方法的第三行) 您可以使用上面的 getKeyChar 方法并检查 int 值是否在“a”和“Z”之间。这看起来像:
char keyChar = e.getKeyChar(); String message = ((keyChar >= 'A' && keyChar <= 'Z') || (keyChar >= 'a' && keyChar <= 'z' ) ? "您选择了 "+ keyChar : "无效"
您可以使用
Character.isLetter()
方法
关于java - 程序将仅显示标签中的字母,并为其他内容提供错误文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42169497/