2009-08-18 8 views
0

Ich habe meine JTable mit dem folgenden Code gefüllt. Es hat zwei Spalten, die erste hat einen Variablennamen und die zweite ist eine Liste ihrer Abhängigkeiten. Der Benutzer kann die Abhängigkeiten ändern, indem er sie aus der Liste in der jTabelle auswählt. Manipulieren von Feldern in der Java-Tabelle

Wenn der Benutzer einen Wert ändert, möchte ich einen anderen jTable hinzugefügt werden, um die Zeile (die nicht vom Benutzer bearbeitet werden würde. Wie würde ich das tun?

Der Code der Tabelle zu füllen ist

 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()); 

Antwort

0

die Art, wie ich es tun würde, ist

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

von Ihrem Tablemodel außer Kraft zu setzen. die setValue-Methode durch die JTable aufgerufen, nachdem der Benutzer av editierte hat

In Ihrer überschriebenen Methode können Sie dann den Wert im anderen TableModel

setzen