我有一个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将不更新任何内容。

任何进一步的帮助?

09-25 20:14