【问题标题】:Why the keypress is not work correctly in java为什么按键在java中不能正常工作
【发布时间】:2015-03-17 18:47:27
【问题描述】:
private void textFieldNameKeyPressed(java.awt.event.KeyEvent evt) {                                         
    // TODO add your handling code here:
    if(!textFieldName.getText().isEmpty())  
        buttonFinish.setEnabled(true);
    else 
        buttonFinish.setEnabled(false);
}   

我只想通过textFieldName 中是否有文本来控制buttonFinish 的启用。

但是,当我测试它时,它总是出错,因为当我输入 1 个字母时,setEnabled 不会改变。

只有输入更多才会正确。此外,当我使用退格键或清除所有字母时,它不会将 setEnabled 更改回 false。只有当我再次单击退格键时,它才会改变。我做错了什么?

【问题讨论】:

  • Java 和 JavaScript 是两个完全不同的东西。删除了不必要的标签

标签: java netbeans keypress


【解决方案1】:

尝试使用密钥释放方法。

private void textFieldNameKeyReleased(java.awt.event.KeyEvent evt) {                                       
        // TODO add your handling code here:
    }  

当您使用keyPressed 方法时,它会在有值或删除该值之前执行。使用keyReleased 它将在之后执行。

【讨论】:

    【解决方案2】:

    尝试使用keyTyped 事件而不是keyPressed。这可能会给您带来麻烦,因为当您按下该键时,该字段中还没有文本。这就是为什么当您在最后一个字符上按退格键时也会发生动作。还要通过设置textFieldName.setFocusable(true);来确保您的组件具有键盘焦点

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 2014-09-28
      • 2023-02-02
      • 2016-07-16
      • 2019-01-04
      • 2020-09-03
      • 2016-10-10
      • 2016-10-24
      相关资源
      最近更新 更多