在JTextField上的工具提示上切换大写锁定

问题描述 投票:2回答:1

我希望在登录时在Windows上完成大写锁定时警告用户。我有一个JTextField应该显示。我搜索了论坛,发现检查密钥是否打开或关闭我们使用Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)。但是,我不知道如何将其附加到文本字段。

注意:我不想弹出一个对话框,其中包含大写锁定打开的消息。

问题:如何在JTextField上显示大写锁定警告/工具提示?

这是我的代码:

public class CapsLockWarningJTextField {

private JFrame frame;

CapsLockWarningJTextField() {
    frame = new JFrame();
    frame.setSize(300, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new net.miginfocom.swing.MigLayout());
    frame.setVisible(true);
    frame.setLocationRelativeTo(null);

    JTextField t = new JTextField(10);

    // if (Toolkit.getDefaultToolkit().getLockingKeyState(
    // KeyEvent.VK_CAPS_LOCK)) {
    // t.setToolTipText("Caps Lock ON");
    // }

    frame.add(t, "cell 0 0");

}

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            new CapsLockWarningJTextField();

          }
      });
   }
}
java swing tooltip jtextfield
1个回答
3
投票

按照这个问题中的建议:Value Change Listener to JTextField你可以为你的jTextField添加一个监听器。

在该侦听器中,您可以检查文档更改时是否打开大写锁定,如果是,则会发出警告。您很可能也想设置一个标志,因此您只需显示一次警告,他们可能希望以大写字母输入部分或全部密码。

© www.soinside.com 2019 - 2024. All rights reserved.