2017-03-04 113 views
0

我已經使用LinkedList中的set方法來改變一個值,但它不適合我。每次它將在控制檯中打印這些值,結果會變成相同的值。它根本沒有改變。誰能幫我?謝謝!如何使用數據結構鏈接列表更改Jtextfield或JComboBox中的值?

這裏是我的代碼:

btnUpdate.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      for(int i = 0; i < emp.id.size(); i++){ 
       if(emp.id.get(i).equals(textField_6.getText())){ 
        Employee emp = new Employee(); 

        emp.setFirstname(textField_1.getText()); 
        emp.setLastname(textField_2.getText()); 
        emp.setAge(textField_3.getText()); 
        emp.setGender(comboBox.getSelectedItem()); 
        emp.setDesignation(comboBox_4.getSelectedItem()); 


        emp.fName.set(i, emp.getFirstname()); 
        emp.LName.set(i, emp.getLastname()); 
        emp.Age.set(i, emp.getAge()); 
        emp.Gender.set(i, emp.getGender()); 
        emp.Designation.set(i, emp.getDesignation()); 
       } 
      } 

      JOptionPane.showMessageDialog(null, "Successfully changed!"); 

      System.out.println(emp.id); 
      System.out.println(emp.fName); 
      System.out.println(emp.LName); 
      System.out.println(emp.Age); 
      System.out.println(emp.Gender); 
      System.out.println(emp.Designation); 

      String cmd = e.getActionCommand(); 

      if(cmd.equals("Update")){ 
       dispose(); 
       exit(); 
      } 
     } 
    }); 

回答

0
Employee emp = new Employee(); 

您還沒有更新現有的對象,你正在創建一個新的對象,你永遠不所有的對象LinkedList的。

if(emp.id.get(i).equals(textField_6.getText())){ 

您有條件查找要更新的「emp」對象,因此請使用該對象。

+0

我該怎麼做? –

+0

@PatriciaOrtega也許我不明白你的數據結構,但你搜索找到正確匹配名稱的對象。你是否添加了一個System.out.println(...)語句來確保if語句是真的?如果是這樣,那麼只需使用if語句中找到的對象。 – camickr