CAPS LOCK - Java
Формулировка задачи:
Почему не работает метод нажатия на клавишу CAPS LOCK?
private void formKeyPressed(java.awt.event.KeyEvent evt) {
if(Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
jLabel1.setText("нажата");} else{jLabel1.setText("");}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if("users".equals(jTextField1.getText())&&"password".equals(jPasswordField1.getText())){
try {
new DIpp().show();
} catch (SQLException ex) {
Logger.getLogger(Password.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
JOptionPane.showMessageDialog(null,"Ошибка входа");}Решение задачи: «CAPS LOCK»
textual
Листинг программы
// действие при нажатии CapsLock
Action capsIndicatorAction = new AbstractAction("CAPS LOCK Indicator") {
@Override
public void actionPerformed(final ActionEvent evt) {
final String statusString = (
Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)
? "нажата"
: ""
);
jLabel1.setText(statusString);
}
};
String capsIndicatorActionName = (String) capsIndicatorAction.getValue(Action.NAME);
// нажатие CapsLock без удерживаемых Ctrl/Alt/Shift/etc.
KeyStroke capsStroke = KeyStroke.getKeyStroke(KeyEvent.VK_CAPS_LOCK, 0);
void setCapsLockIndicator(final JComponent cmp) {
cmp.getInputMap(JComponent.WHEN_FOCUSED).put(capsStroke, capsIndicatorActionName);
cmp.getActionMap().put(capsIndicatorActionName, capsIndicatorAction);
}