Как я могу скрыть строку в моем JTable? - PullRequest
2 голосов
/ 06 марта 2012

Я использую Eclipse Indigo SR1 с JDK 1.7 в Windows 7 Pro.Я написал настольное приложение на основе Swing.

Мое приложение содержит JTable;он показывает много записей типа T, по одной строке на запись.Модель таблицы указывает на вектор vect с именем vect, содержащий все данные, которые должны отображаться в JTable.

Приложение включает в себя комбо с именем sele, показывающее три значения: 0, 1, 2.

Когда sele = 0, каждая запись vect должна быть видимой в JTable.

Когда sele = 1, JTable должна отображать только записи vect с нечетным индексом строки и все записи с четным индексом строки mustnне быть видимымViceversa, когда sele = 2.

Итак, вот мой вопрос: как я могу сделать строку невидимой в JTable?Я не могу использовать табличную модель, потому что она указывает на vect, который содержит «все» данные.

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

Я пробовал другой способ: если r - индекс строки, и я хочу, чтобы эта строка не была видна, я пишу table.setRowHeight (r, 0), но эта инструкция выдает исключение, высота не может быть установлена ​​равной нулю.

Я мог бы решить проблему, разделив данные, разделив vect на две части, но мне это не нравится.

У кого-нибудь есть идея?

спасибо заранее, Уильям

PS: кто-то сказал мне создать фильтрующую TableModel, которая обернет существующую TableModel.Модель фильтрации будет чувствительна к критериям фильтрации и запускает соответствующие методы (TableDataChanged) при изменении фильтра.Метод getRowCount возвращает отфильтрованный счетчик.Метод getValueAt отображает отфильтрованную строку на фактическую строку в базовой TableModel.

Мах, возможно, это хорошая идея, но, честно говоря, я не могу этого понять ...

1 Ответ

4 голосов
/ 06 марта 2012

Используйте TableRowSorter - это:

Реализация RowSorter, которая обеспечивает сортировку и фильтрацию с использованием TableModel...

См. Как использовать таблицы и особенно Сортировка и фильтрация для получения дополнительной информации.

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