嘿,伙计们!诺兰克在这里。
当我在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
顺便说一下,username
和password
都是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