Jtable - getvalueAt () проблема - PullRequest
1 голос
/ 29 марта 2012

Я хочу знать, почему мой getvalueAt() выбирает старые данные при нажатии Enter . Я перепробовал все модули обновления и изменения таблиц, но не смог заставить его работать. Я делаю листовую структуру Excel в JTable, в которой одна строка обновляется при изменении другой строки.

public void setValueAt(Object aValue, int row, int column) {
        if(column == 2 || column == 3 || column == 4 || column == 5)
    {
        System.out.println("2 is: "+getValueAt(row, 2));
        System.out.println("3 is: "+getValueAt(row, 3));
        System.out.println("4 is: "+getValueAt(row, 4));
        long closingbalance = Long.parseLong(getValueAt(row,2).toString())
            + Long.parseLong(getValueAt(row,3).toString())
            - Long.parseLong(getValueAt(row,4).toString());
        System.out.println("closing: "+closingbalance);
        super.setValueAt(closingbalance,row, 6);
    }               
    super.setValueAt(aValue, row, column);
}

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Я не могу ответить на ваш вопрос на другом форуме, потому что новая версия форума сводит меня с ума

  • нет причин анализировать значение из JTable,

  • JTable реализует все важные типы данных

  • примеры здесь или здесь

  • для лучшей помощи отредактируйте свой вопрос с помощью SSCCE

1 голос
/ 30 марта 2012

Убедитесь, что ваш CellEditor завершен и ваш TableModel находится в согласованном состоянии при доступе к другим значениям. Это пример переопределения getValueAt() для получения значения зависимой ячейки. Чтобы избежать такого большого разбора, ваш TableModel, вероятно, должен просто содержать экземпляры Long.

Предполагая, что вам действительно нужно переопределить setValueAt(), не ясно, какой TableModel вы используете. Если вы расширяете DefaultTableModel, реализация super.setValueAt() подходит; если вы расширяете AbstractTableModel, супер реализация пуста, и вам нужно будет запустить соответствующее событие.

...