当另一个jTextfield在java中为空时,如何再次禁用jTextfield



嘿,伙计们!诺兰克在这里。

当我在username jField内放置一些东西时,我有这段代码enables我的password jField,但是当我从username jField中删除我的输入时,我的password jField保持启用状态。我希望它回到残疾状态。我仍然是一个初学者,所以我很抱歉。

private void usernameKeyTyped(java.awt.event.KeyEvent evt) {                                  
String usern = username.getText();
if(usern != null){
password.setEnabled(true);
}else{
password.setEnabled(false);
}
}   

我尝试为其编码无限循环,但它只是使我的.jar文件停止响应/不会关闭,所以我不得不关闭 netbeans 本身并重新启动它。 xD

顺便说一下,usernamepassword都是jTextfields,默认情况下基本上password禁用


if username != null then enable password but if username = null again then disable password again

您可能想要的是一个文档侦听器,它允许您检测用户名字段何时更改并采取适当的操作。

我正在使用移动应用程序编写此答案,因此现在很难提供代码示例。

基本上,您将在用户名上设置侦听器以检查用户名是否为空或空,并根据该检查的结果启用/禁用密码字段。

编辑:

我现在回到电脑前,能够提供代码示例。见下文:

userNameTextBox.getDocument().addDocumentListener(new DocumentListener(){
@Override
public void insertUpdate(DocumentEvent e) {
handleTextChange();
}
@Override
public void removeUpdate(DocumentEvent e) {
handleTextChange();
}
@Override
public void changedUpdate(DocumentEvent e) {
//Do nothing here
}
private void handleTextChange(){
if(userNameTextBox.getText() == null ||
userNameTextBox.getText().trim().length() == 0){
passwordBox.setEnabled(false);
}else{
passwordBox.setEnabled(true);
}
}
});

请注意,changedUpdate方法不执行任何操作,因为它不是在文档文本更改时触发的,而是在属性更改时触发的。有关完整的详细信息,请参阅 javadoc

相关内容

  • 没有找到相关文章

最新更新