Повторное использование столбцов в Swing - PullRequest
0 голосов
/ 26 мая 2011

Я пытаюсь изменить код свинга.В настоящее время есть две отдельные JTables, и у каждого есть все те же столбцы, кроме того, у второго есть дополнительный столбец.У нас есть много слушателей событий, которые подключены к каждому столбцу в каждой таблице для различных целей.

Я хотел бы сделать что-то вроде этого:

TableColumn column_1_name = new TableColumn();
TableColumn column_2_name = new TableColumn();
...

column_1_name.code_for_adding_listeners_etc()
column_2_name.code_for_adding_some_other_listeners_etc()
...

TableColumnModel model = new TableColumnModel()
model.add(column_1_name);
model.add...
...

TableModel tableModel = ...

JTable table = new JTable(tableModel, model);

Путем присвоения имен столбцамвыше, я могу настроить каждый, как это должно быть установлено, а затем создать JTables с этими именованными столбцами.Это более сухой, таким образом.Однако этот способ не работает!Это должно ... в соответствии с javadoc, но по какой-то причине таблица не будет отображаться.

Пожалуйста, любые советы и поддержание Swing DRY и использование инкапсуляции или почему мой метод не работает ... егосводит меня с ума.То, как сейчас (а не как выше), каждый JTable, который почти идентичен, требует тонны повторений.

1 Ответ

0 голосов
/ 26 мая 2011

Полагаю, объекты TableColumn просто не предназначены для совместного использования между разными таблицами, поэтому вам придется в любом случае дублировать их. (Мне надоело смотреть документацию, может, завтра, если понадобится).

Однако вы можете поделиться кодом, который их генерирует: поместите его в метод, который либо возвращает новый TableColumnModel, либо получает существующий и добавляет к нему ваши X-столбцы. Затем вы просто вызываете этот метод дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...