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

时间:2015-04-24 08:35:35

标签: java swing tooltip jtextfield

我希望在登录时在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();

          }
      });
   }
}

1 个答案:

答案 0 :(得分:3)

通过遵循此问题中的建议:Value Change Listener to JTextField您可以向jTextField添加侦听器。

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