Прежде всего решите, какими будут ваши столбцы.Вы, кажется, запутались, какими должны быть эти столбцы, когда у некоторых сотрудников более одного телефона.Непонятно, в чем ваша проблема, но, вероятно, просто нарисовав ее на листе бумаги, вы уже очистите свой разум.
Решите также, будут ли эти столбцы фиксированными или динамическими (т.е. возможно ли получить больше столбцов для некоторых сотрудников, которые вам нужно будет добавить в вашу таблицу?)
ВторойСоздайте отдельную структуру данных, давайте назовем этот класс EmployeeData
, который собирает необходимую вам информацию.Сделайте это отдельно от PunetoriTableModel
.Заполните это из ваших хранилищ данных.Внутри этого помещается необходимая логика, которая решает, какой телефон использовать, или какую-либо собственную бизнес-логику, которая вам нужна.
Заставьте EmployeeData
предоставить несколько открытых методов, таких как getColumns()
, getRowCount()
и getRow(int i)
и т. Д.
В конструкторе вашего PunetoriTableModel
просто передайте EmployeeData
и внутри соответствующих методов вызывайте EmployeeData
.Таким образом, табличная модель воспринимает данные как таблицу, и у вас есть собственная логика, которая объединяет их из разных таблиц в отдельную.