Как получить правильный выбор в JTreeTable? - PullRequest
2 голосов
/ 15 января 2010

Я работаю с JTreeTable, как описано в старой статье по адресу: Sun Developer Network

Вот те же файлы, но слегка настроенные для Java 6: http://edtaylor80.angelfire.com

Если вы запустите эту небольшую примерную программу, вы обнаружите, что выделение работает, как и ожидалось, с начала, целые строки выбираются при нажатии случайной ячейки. Такое поведение желательно. Однако, как только узел расширяется, поведение меняется, теперь можно выбрать только строку, нажав на актуальный узел (имя). Я все еще хочу иметь возможность выбрать всю строку, нажав случайную ячейку. Как я могу изменить исходный код для достижения этой цели?

1 Ответ

1 голос
/ 15 января 2010

Прежде чем щелкнуть первый столбец, чтобы открыть узел, для JTable нет редактора ячеек. После выполнения этой операции у таблицы появляется активный редактор ячеек, который является экземпляром AbstractCellEditor, входящим в состав примера источника JTreeTable. В реализации вы найдете это:

public boolean shouldSelectCell(EventObject anEvent) { return false; }

Это вызывается BasicTableUI, когда он определяет, корректировать выбор или нет. Как видите, он всегда вернет false. Вот почему, открыв узел, вы увидите это странное поведение выбора.

Находясь на теме древовидных таблиц, я рекомендую вам проверить NetBeans Outline. Это простая в использовании реализация, гораздо менее запутанная, чем пример JTreeTable от Sun. Вы можете найти ссылки и демонстрацию в этом посте .

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