найти и выбрать в JTable


Я создаю приложение, в котором я использую JTable для перечисления имен файлов или папок.

Мой вопрос:: Как я могу найти и выполнить поиск определенного файла или папки в JTable, как в Windows. В списке каталогов windows, когда мы нажимаем любую клавишу, то мы можем видеть, что файл или папка начинается с этого символа выбран, и если мы снова нажимаем ту же клавишу, то следующий файл / папка выбирается с началом с этим символом.

5 2

5 ответов:

Если вы можете использовать код 3-й стороны, я бы предложил взглянуть на проект SwingX. Их JXTable, JXTree, JXList и некоторые другие классы предоставляют реализацию интерфейса Searchable, что делает создание виджета поиска легким делом.

И если это даже слишком сложно, они предоставляют out-of-box a JXFindPanel , который предоставляет пользовательский интерфейс для поиска a Searchable

Если вы можете (и вы хотите) использовать компоненты пользовательского интерфейса сторонних разработчиков, общий слой JIDE с открытым исходным кодом предлагает несколько хороших компонентов: например, вам может понравиться FolderChooser, который имеет функцию автоматического поиска по мере ввода.

Вот ссылка: JIDE Common Layer. Если вы нажмете кнопку "запустить его", вы можете увидеть пример через Java Web Start.

Я использовал много компонентов JIDE (только с открытым исходным кодом) в своих проектах и избегал изобретать колесо. раз.

Надеюсь, это поможет вам.

Вы хотите, чтобы действие происходило при вводе ключа ? -> добавить keyListener к вашему столу

Вы хотите знать, какая строка допустима - >запрос вашей модели данных, подключенной к вашей jtable

Вы хотите изменить выбранную строку ? -> в keytyped реализации вашего слушателя измените выбор

table.getSelectionModel().setSelectionInterval(1,1);

Поскольку я ничего не знаю о том, как вы реализовали логику кода, JTable реализовал сортировку и фильтрацию

Но вы говорите о JTreeTable

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