Я использую JTable для отображения данных, полученных из потокового потока данных.
Каждая точка данных представлена как объект типа X, который имеет одно поле интереса, назовем его valueField. Моя реализация интерфейса TableModel имеет HashMap объектов X, связанных с X.getId ().
Пользователи графического интерфейса могут изменять значения с помощью JSpinner, установленного в качестве настраиваемого редактора для каждой ячейки в соответствующих столбцах.
Однако это значение также зависит от значений X.valueField в других строках.
Например, моя таблица представляет 3 объекта X1, X2 и X3. Их отношение:
X1.valueField = X2.valueField + X3.valueField
Если пользователь меняет X1, один из X2 и X3 остается постоянным (в зависимости от бизнес-логики), а другое значение изменяется, чтобы поддерживать согласованность отношений. Аналогичным образом, пользователь также может изменить X2 или X3.
Должен ли я инкапсулировать отношения в моей реализации TableModel или я должен расширить свой редактор пользовательских таблиц, чтобы учесть способы, которыми значение может измениться?
Я думаю, что оба подхода будут работать, но я не уверен, какой из них правильный. Документация Sun и других форумов предлагает расширить пользовательский редактор для управления значением поля, но он не учитывает взаимосвязь этого значения с другими членами базовой модели данных.
Любые мысли высоко ценятся.
00rush