テキストフィールド、コンボボックスなどのswingアプリケーションの入力フィールドを検証し、すべてが問題ない場合にのみユーザーが[保存]ボタンを押すようにする最良の方法は何ですか? 検索機能も同じインターフェースであるとします。そのため、レコードを検索すると、入力フィールドも埋められます。ただし、その場合、[保存] ボタンは無効のままにする必要があります。
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);
}
}
});