java - 程序将仅显示标签中的字母,并为其他内容提供错误文本

标签 java swing

我目前让程序显示按下的任何键,范围从字母到数字和符号。问题是,我只希望它显示字母,并对其他所有内容说“无效”。

这是我现在拥有的:

public void keyPressed(KeyEvent e) {
    String keyCode = KeyEvent.getKeyText(e.getKeyCode());

    statusMsg.setText("You selected " + keyCode);

}

编辑:谢谢大家的帮助!

最佳答案

您可能想使用e.getKeyChar()相反,如果用户输入 shift + a ,则会为您提供代表 A 的字符例如。也就是说,您有几个选择:

  1. 您可以编写一个仅接受字母字符的匹配器。这可能看起来像 Matcher matcher = Pattern.compile("[a-zA-Z]").matcher() 。然后你可以查看matcher.matches(keyCode) (例如 keyCode = matcher.matches(keyCode) ? keyCode : "Not Valid" 在你的方法的第三行)
  2. 您可以使用上面的 getKeyChar 方法并检查 int 值是否在“a”和“Z”之间。这看起来像:

    char keyChar = e.getKeyChar(); String message = ((keyChar >= 'A' && keyChar <= 'Z') || (keyChar >= 'a' && keyChar <= 'z' ) ? "您选择了 "+ keyChar : "无效"

  3. 您可以使用Character.isLetter()方法

关于java - 程序将仅显示标签中的字母,并为其他内容提供错误文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42169497/

相关文章:

java - tomcat的ThreadLocalLeakPreventionListener到底是做什么的?

Java、Spring、推送通知

java - 使用 Java 创建 Windows 符号链接(symbolic link)(相当于 MKLINK)

java - 实时屏幕共享到 Java 应用程序(本地主机)

java - 是否可以为 JLabel 中的 ImageIcon 制作选择工具?

java - 使用带有 SVGSalamander 的有效 svg xml 创建 SVGIcon

java - 什么设计模式应该通过 ActionListener 影响特定对象

java - Spring继承@Component并带有构造函数参数

java - JLabel ImageIcon 未正确平滑

java - Application.DoEvents() -> Java 中的等效函数?