Я использую 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.
Мах, возможно, это хорошая идея, но, честно говоря, я не могу этого понять ...