сортировка JTable с использованием вектора данных - PullRequest
0 голосов
/ 29 ноября 2011

Я застрял с проблемой производительности во время написания моей программы, и мне нужна ваша помощь! :)

Я использую JTable для просмотра результатов теста, взятых из сделанного мной вектора, и в нем 4 столбца. Когда я нажимаю на строку, подробности из сохраненного текстового файла этого теста отображаются в дочернем окне. Кроме того, когда я щелкаю заголовок столбца, событие отправляет вектор в функцию, которая сортирует его по нажатому столбцу. Каждый раз, когда необходимо ввести новое значение, функция сортировки вызывается снова.

Моя программа отлично работает с небольшим количеством строк. Но, когда я ввожу, скажем, 150 строк, каждый раз, когда я вхожу в новую строку, таблица щелкает (сортировка, вероятно, занимает много времени), но я должен поддерживать синхронизацию вектора с jable из-за «нажатия для просмотра Опция "Результат".

Я был бы очень признателен за помощь. спасибо

Ответы [ 2 ]

3 голосов
/ 29 ноября 2011

Вы не должны делать сортировку самостоятельно. JTable поддерживает внутреннюю сортировку и имеет методы convertRowIndexToModel и convertRowIndexToView для перехода от индекса представления к индексу модели и наоборот.

См. http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting.

0 голосов
/ 29 ноября 2011

Использовать внутренний сортировщик JTable (DefaultRowSorter).Не создавайте заново вектор, содержащий данные - используйте метод add () в Vector для добавления новых записей.За многие годы разработки Java GUI я не видел ни одного случая, когда мне приходилось хранить записи в отсортированной TableModel.Убедитесь, что getColumnClass () возвращает правильный тип, чтобы сортировщик по умолчанию знал, как сортировать столбец, и это все.

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