【问题标题】:How can I detect if caps lock is toggled in Swing?如何检测是否在 Swing 中切换了大写锁定?
【发布时间】:2008-09-17 22:42:25
【问题描述】:

我正在尝试为我的工作场所构建一个更好的用户名/密码字段,并且希望能够在他们锁定大写字母时进行投诉。

这可能吗?如果是这样,我希望在客户输入他们的第一个字母之前检测到它。

是否有非平台特定的方法来做到这一点?

【问题讨论】:

    标签: java swing


    【解决方案1】:

    试试这个,从 java.awt.Toolkit 返回一个布尔值:

    Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)
    

    【讨论】:

    • 除了它不适用于所有平台。例如,它在 Linux 中的 OpenJDK-6 下抛出 UnsupportedException。 :(
    • 正如其他人指出的那样,这会在 Linux 上引发错误。有趣的是,在 Linux 中必须有一种内部方法来执行此操作,因为 Gnome 会显示消息“您已打开大写锁定键”。当它打开并且屏幕被锁定时。也许操作系统有 API 但 java 没有实现它们?使用 jdk 1.6 和 fedora 14
    【解决方案2】:
    【解决方案3】:

    除了 Nick 的回答之外,为了在用户按键之前对这种情况做出反应,您可以监听文本输入组件的焦点事件,并在组件接收焦点时测试大写锁定。

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      相关资源
      最近更新 更多