Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > как узнать изначальное значение ячейки


Автор: 4eJIoBekMoJIekyJIa 31.7.2008, 19:17
добавляю к столбцу СellEditorListener, проблема в том что я не могу узнать значение ячейки до редактирования, т.к и величина хранящаяся в модели таблицы и то что выдает editor.getCellEditorValue() одинаково.
Код

    DefaultCellEditor editor = new DefaultCellEditor(new JTextField());
    editor.addCellEditorListener(new CellEditorListener() {
        public void editingStopped(ChangeEvent e) {

            Vector v = ((DefaultTableModel)jTable.getModel()).getDataVector();
            int row = jTable.getSelectedRow();
            int col = jTable.getSelectedColumn();
            Object data1 = ((Vector)v.get(row)).get(col);

            Object data2 = ((DefaultCellEditor)e.getSource()).getCellEditorValue();
                        if(!data1.equals(data2)) {
                               //здесь программа никогда не окажется
                        }
        }


Автор: AlCapone 5.8.2008, 12:09
по-моему, гиблое дело - доставать предыдущее значение ячейки из editingStopped, проще создать копию модели таблицы

Автор: 4eJIoBekMoJIekyJIa 6.8.2008, 15:27
Цитата(AlCapone @  5.8.2008,  12:09 Найти цитируемый пост)
проще создать копию модели таблицы

проще оно конечно проще, но вот только как следить за подлинностью данных в этой копии.
Вобщем я переопределил модель и добавил туда поле oldData, которое при вызове setValueAt() инициализируется еще не обновленным dataVector'ом.

Всем спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)