Jtable mise à jour de la ligne sélectionnée

J'ai une jtable qui a un bouton modifier, quand je sélectionne une ligne d'un clic de bouton éditer et modifier les champs, puis cliquez sur enregistrer bouton, cette ligne n'est pas mise à jour, Et j'ai actualiser ma table de Changer la ligne!

Mon code:

        if (e.getSource() == editButton) {
        selectedRow = uTable.getSelectedRow();
        if (selectedRow >= 0) {
            editUser(selectedRow);
        } else {
            JOptionPane.showMessageDialog(null, "Select a row");
        }
    }

    public void editUser(int row) {
    UserInformation userInf = userModel.getSelectedMember(row);
    NewUserFrame_Edit edit = new NewUserFrame_Edit(userInf, row);
}

...

Mon NewUserFrame_Edit Classe :

public class NewUserFrame_Edit extends javax.swing.JFrame {

private AllUser userModel;
private int selectedrow;
private String gender;

public NewUserFrame_Edit(AllUser userModel,UserInformation userinf, int row) {
...
this.userModel = userModel;
    jTextField1.setText(userinf.getFname().toString().trim());
    jTextField2.setText(userinf.getLname().toString().trim());

    if (userinf.getGender().equals("Male")) {
        jRadioButton1.setSelected(true);
    } else {
        jRadioButton2.setSelected(true);
    }

    jTextField3.setText(userinf.getDate());
    selectedrow = row;
    setVisible(true);
}

private void updateButtonActionPerformed(java.awt.event.ActionEvent evt) {     
    userinf = new UserInformation();

    userinf.setFname(jTextField1.getText());
    userinf.setLname(jTextField2.getText());
    userinf.setGender(gender);
    userinf.setDate(jTextField3.getText());

    userModel.setValueAt(userinf.getFname() , selectedrow, 1);
    userModel.setValueAt(userinf.getLname() , selectedrow, 2);
    userModel.setValueAt(userinf.getGender(), selectedrow , 3);
    userModel.setValueAt(userinf.getDate() , selectedrow, 4);
    userModel.updateFile(userModel.Udata);

    NewUserFrame_Edit.this.dispose();
}
...
}

Mon setValueAt() et updateFile() méthodes de ma Classe de modèle:

public class AllUser extends AbstractTableModel {
...
    @Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
    UserInformation userInfo = Udata.get(rowIndex);
    switch (columnIndex) {
        case 0:
            userInfo.setID((String) value);
            break;
        case 1:
            userInfo.setFname((String) value);
            break;
        case 2:
            userInfo.setLname((String) value);
            break;
        case 3:
            userInfo.setGender((String) value);
            break;
        case 4:
            userInfo.setDate((String) value);
            break;
    }
    fireTableCellUpdated(rowIndex, columnIndex);
}

    public void updateFile(ArrayList<UserInformation> data) {
    PrintWriter pw;
    try {
        pw = new PrintWriter(new FileWriter("AllUserRecords.txt"));
        for (UserInformation userinf : data) {
            String line = userinf.getID()
                    + "     " + userinf.getFname()
                    + "     " + userinf.getLname()
                    + "     " + userinf.getGender()
                    + "     " + userinf.getDate();

            pw.println(line);
        }
        pw.close();
    } catch (IOException ioe) {
    }
}
...
}

Quand j'sélectionnez une ligne et cliquez pour bouton modifier, une nouvelle jframe est ouvert que son champ de texte est de le remplir avec des données plus anciennes, et je l'ai mise à jour de données et cliquez pour bouton enregistrer.
Ainsi, ma colonne n'est pas certain.
- Je sélectionner une ligne entière, Pas une cellule!

Grâce.

ouais..Sajjad , j'ai eu aujourd'hui de relever ce comportement dans votre code. Vous pouvez créer une méthode appelée updateRow(int index) et définir une nouvelle Valeur pour chaque cellule de cette ligne à l'aide de setValueAt(newValue,row,index). Et dans substituée setValue méthode de TableModel écrire fireTableCellUpdated(row, col)
Oh' Salut cher @VishalK , Êtes-vous d'examen de l'ensemble de mon projet?
Salut @Sajjad: Vous avez fait du bon boulot..à l'exception de quelques erreurs mineures.. Et c'est le seul que j'ai trouvé. Et concernant votre projet de niveau..Il a encore besoin de peu de modifications, puis d'être tous beaux...
Où est votre code pour updateFile() dans AllUser de classe.?
Attendre..laissez-moi vérifier votre méthode..et je l'ai mise à jour mon post..

OriginalL'auteur Sajad | 2013-03-21