我有一个JButton可以更新MYSQL数据库中的数据,仅当在JTextFields中检测到更改时,才如何启用JButton?
...这是我的更新按钮代码
private void updateBtnActionPerformed(java.awt.event.ActionEvent evt) {
try{
String a = IDField.getText();
String query = "UPDATE employee SET First_Name=?, Last_Name=?,Job_Title=? WHERE ID=?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, FNameField.getText());
ps.setString(2, LNameField.getText());
ps.setString(3, jobTitleField.getText());
ps.setString(4, a);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Successfully Updated Employee Record!");
}catch(Exception e){
System.out.println(e);
}
最佳答案
公共(public)静态无效addChangeListener(JTextComponent text,ChangeListener changeListener){
Objects.requireNonNull(text);
Objects.requireNonNull(changeListener);
DocumentListener dl = new DocumentListener(){
private int lastChange = 0,lastNotifiedChange = 0;
@Override
public void insertUpdate(DocumentEvent e) {
changedUpdate(e);
}
@Override
public void removeUpdate(DocumentEvent e) {
changedUpdate(e);
}
@Override
public void changedUpdate(DocumentEvent e) {
lastChange++;
SwingUtilities.invokeLater(() -> {
if (lastNotifiedChange != lastChange) {
lastNotifiedChange = lastChange;
changeListener.stateChanged(new ChangeEvent(text));
}
});
}
};
text.addPropertyChangeListener("document", (PropertyChangeEvent e) -> {
Document d1 = (Document)e.getOldValue();
Document d2 = (Document)e.getNewValue();
if (d1 != null) d1.removeDocumentListener(dl);
if (d2 != null) d2.addDocumentListener(dl);
dl.changedUpdate(null);
});
Document d = text.getDocument();
if (d != null) d.addDocumentListener(dl);
}
我该如何实现呢?
addChangeListener(someTextBox,e-> doSomething());
因此,当在JTextField中检测到更改时,我的“更新”按钮将通知已进行的更改,如果未进行更改,则UpdateBtn将不更新任何内容。
任何进一步的帮助?