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