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

标签 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();

          }
      });
   }
}

最佳答案

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

在该监听器中,您可以在文档更改时检查大写锁定是否打开,如果是,则警告他们。您很可能还想设置一个标志,这样您只显示一次警告,他们可能想输入部分或全部大写密码。

关于java - 在 JTextField 上的工具提示上切换大写锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29842503/

相关文章:

java - 获取两个标签之间的内容,然后返回完整的字符串

java - 在 GUI 中向 JMenuItem 添加加速器描述,而不实际添加加速器

javascript - 从工具提示中获取属性

Java - 单击时使用 JComponent 将新图像添加到 Jframe

jquery - 如何将 Bootstrap 工具提示应用于 ajax 加载的内容?

javascript - YUI 工具提示未显示在面板顶部

java - 找不到媒体类型=应用程序/json 的 MessageBodyWriter

Java BufferedReader 返回奇怪的字符

java - 使用 Java 实现 Mendeley 中的 Oauth 2

java - 如何停止 ScheduledExecutorService 的工作?