我的用户界面中大约有10个jtextfield和一个按钮。我想在界面初始化时禁用该按钮,并在所有文本字段都不为空时启用它。我尝试在线搜索该问题,但有人说无法完成。我的文本框和按钮没有经过硬编码,但是可以通过拖放操作完成。真的没有解决方案可以在 拖放jTextfield 上实现DocumentListener吗?
public class Register extends javax.swing.JFrame implements DocumentListener{
private List<JTextField> textfields = new ArrayList<JTextField>();
public void addTextField(){
textfields.add(TextField1);
textfields.add(TextField2);
textfields.add(TextField3);
textfields.add(TextField4);
textfields.add(TextField5);
textfields.add(TextField6);
textfields.add(TextField7);
textfields.add(TextField8);
textfields.add(TextField9);
textfields.add(TextField10);
for(int i =0;i<textfields.size ();i++){
textfields.get(i).getDocument().addDocumentListener(this);
}
}
public boolean isDataEntered()
{
for (JTextField textField : textfields)
{
if (textField.getText().trim().length() == 0)
return false;
}
return true;
}
@Override
public void insertUpdate(DocumentEvent de) {
checkData();
}
@Override
public void removeUpdate(DocumentEvent de) {
checkData();
}
@Override
public void changedUpdate(DocumentEvent de) {
checkData();
}
private void checkData(){
jButton2.setEnabled(isDataEntered());
}
private javax.swing.JTextField TextField1;
private javax.swing.JTextField TextField10;
private javax.swing.JTextField TextField2;
private javax.swing.JTextField TextField3;
private javax.swing.JTextField TextField4;
private javax.swing.JTextField TextField5;
private javax.swing.JTextField TextField6;
private javax.swing.JTextField TextField7;
private javax.swing.JTextField TextField8;
private javax.swing.JTextField TextField9;
private javax.swing.JButton jButton2;