2016-02-03 64 views
2

我有一個JButton更新我的MYSQL數據庫中的數據,我如何僅在JTextFields中檢測到更改時啓用JButton?JAVA:只有當在JTextField中進行更改時才啓用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); 
     } 

回答

1

公共靜態無效addChangeListener(JTextComponent的文字的ChangeListener的ChangeListener){ Objects.requireNonNull(文本); 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將不會更新任何變化..

任何進一步的幫助?

相關問題