2010-02-17 2 views
1

Я использую JTable для отображения данных, полученных из потоковой передачи данных.Java Swing: пересчет значений в JTable, чтобы использовать TableModel или написать собственный редактор?

Каждая точка данных представлена ​​как объект типа X, который имеет одно поле интереса, позволяет называть его значением. Моя реализация интерфейса TableModel имеет HashMap объектов X, наложенных на X.getId().

Пользователи GUI могут изменять значения с помощью набора JSpinner в качестве настраиваемого редактора для каждой ячейки в соответствующих столбцах.

Однако значение также зависит от значений X.valueField в других строках.

Например, моя таблица представляет 3 объекта X1, X2 и X3. Их соотношение:

X1.valueField = X2.valueField + X3.valueField

Если пользователь изменяет X1, один из X2 и X3 поддерживается постоянным (в зависимости от бизнес-логики), а другое значение изменяется чтобы поддерживать взаимосвязь. Аналогично, пользователь может также изменить X2 или X3.

Должен ли я инкапсулировать отношения в моей реализации TableModel, или я должен расширить свой редактор таблиц, чтобы учесть способы изменения значения?

Я думаю, что оба подхода будут работать, но я не уверен, какой из них правильный. Документация от Sun и других форумов предлагает расширить пользовательский редактор, чтобы контролировать значение поля, но он не учитывает связь этого значения с другими членами базовой модели данных.

Любые мысли очень ценятся.

00rush

ответ

2

Я хотел бы предложить, что если моды, которые выполняют пользователи являются постоянными, то есть после того, как моды сделана, данные Подложки обновляется - то с табличная модель сохранить измененные данные правильно. С другой стороны, если есть режим редактирования, когда пользователь может работать с данными и фиксировать один раз, я бы предложил, чтобы редактор поддерживал моды до тех пор, пока пользователь не запускает процесс фиксации.

 Смежные вопросы

  • Нет связанных вопросов^_^