JAVA:仅当在JTextField中进行更改时才启用JButton

JAVA:仅当在JTextField中进行更改时才启用JButton,java,error-handling,sql-update,Java,Error Handling,Sql Update,我有一个更新MYSQL数据库中数据的JButton,如何仅在我的JTextFields中检测到更改时启用JButton …这是我的更新按钮代码 private void updateBtnActionPerformed(java.awt.event.ActionEvent evt) { try{ String a = IDField.getText(); String query = "UPDATE emp

我有一个更新MYSQL数据库中数据的JButton,如何仅在我的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);
        }

您可以在JTextField上添加valueChangeListener


有关更多信息,请访问此堆栈溢出链接-

公共静态无效addChangeListener(JTextComponent文本,ChangeListener ChangeListener){ 对象。requirennoull(文本); 对象。requireNonNull(changeListener); DocumentListener dl=新的DocumentListener(){ private int lastChange=0,lastcnotifiedchange=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将不会更新任何内容

还有什么帮助吗