Управление полями в jTable Java

Я заполнил свой jTable следующим кодом. Он имеет два столбца, первый содержит имя переменной, а второй — список ее зависимостей. Пользователь может изменить зависимости, выбрав их из списка в jTable.

Когда пользователь изменяет значение, я хочу, чтобы строка была добавлена ​​​​в другую jTable (которая не будет редактироваться пользователем. Как мне это сделать?

Код для заполнения таблицы

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

person Jaelebi    schedule 18.08.2009    source источник


Ответы (1)


Я бы сделал это, чтобы переопределить

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

из вашей TableModel. Метод setValue вызывается JTable после того, как пользователь отредактировал значение.

В вашем переопределенном методе вы можете установить значение в другой модели таблицы

person Peter    schedule 18.08.2009