【发布时间】:2013-04-21 12:15:12
【问题描述】:
验证 Swing 应用程序的输入字段(例如文本字段、组合框等)并让用户仅在一切正常时才按下保存按钮的最佳方法是什么。假设 Search 功能也在同一个界面中。所以搜索记录也会填满输入字段。但在这种情况下,保存按钮应保持禁用状态。
initComponents();
btnSave.setEnabled(false);
txt1.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
}
@Override
public void removeUpdate(DocumentEvent e) {
validate(txt1.getText(),e);
}
@Override
public void insertUpdate(DocumentEvent e) {
validate(txt1.getText(),e);
}
public void validate(String enteredText,DocumentEvent e) {
String currText = "";
try {
Document doc = (Document) e.getDocument();
currText = doc.getText(0, doc.getLength());
} catch (BadLocationException e1) {
}
if(enteredText.equals(currText)){
//if validated successfully
btnSave.setEnabled(false);
}else{
btnSave.setEnabled(true);
}
}
});
【问题讨论】:
-
@vishal_aim 我在表单加载时将启用设置为 false。然后在验证方法结束时为 Save 按钮设置 enable true。然后我在最后一个文本字段的按下事件中调用了 Validate 方法。
-
如果用户填写了最后一个文本字段并清除了前面的文本字段之一怎么办?然后您需要将该操作添加到所有输入元素。
-
@GnomezGrave 完全正确。这就是我在这里遇到的问题。我会试试你的建议。
标签: java swing validation jbutton