2009-08-18 7 views
0

J'ai rempli mon jTable avec le code suivant. Il a deux colonnes, la première a un nom de variable et la seconde est une liste de ses dépendances. L'utilisateur peut modifier les dépendances en les sélectionnant dans la liste de la jTable.Champs de manipulation dans le jTable Java

Lorsque l'utilisateur change une valeur, je veux ramer à ajouter à un autre jtable (qui ne serait pas modifiable utilisateur. Comment puis-je faire?

Le code pour remplir la table est

 Vector<Vector> data = new Vector<Vector>(); 
     for (String v : acn.getVariableNames()) { 
     Vector tmp = new Vector(); 
     tmp.add(v); 
     ArrayList<String> temp = new ArrayList<String>(); 
     for (String u : acn.getVariableDomain(v)) { 
      temp.add(u); 
     } 
     tmp.add(temp); 
     data.add(tmp); 
    } 
    Vector names = new Vector(); 
    names.add("Variable"); 
    names.add("Domain Value"); 
    DefaultTableModel dt = new DefaultTableModel(); 
    dt.setDataVector(data, names); 

    jTable2.setModel(dt); 
    jTable2.getColumnModel().getColumn(1).setCellEditor(new ChangeImpactEditor()); 
    jTable2.getColumnModel().getColumn(1).setCellRenderer(new TableListRenderer()); 

Répondre

0

la façon dont je le ferais est de passer outre

public void setValueAt(Object aValue, int rowIndex, int columnIndex); 

de votre TableModel. la méthode setValue s'appelée par le JTable après que l'utilisateur a editted av aleur

Dans votre méthode substituée, vous pouvez ensuite définir la valeur dans l'autre modèle de tableau