2017-03-04 71 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