найти и выбрать в JTable - PullRequest
       2

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

2 голосов
/ 23 января 2012

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

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

Ответы [ 5 ]

2 голосов
/ 24 января 2012

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

И если это даже слишком сложно, они предоставляют готовое JXFindPanel, которое предоставляет пользовательский интерфейс для поиска Searchable

2 голосов
/ 23 января 2012

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

Вот ссылка: Общий слой JIDE . Если вы нажмете кнопку «RUN IT», вы увидите образец через Java Web Start.

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

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

1 голос
/ 23 января 2012

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

, но в ваших описаниях говорится о JTreeTable

1 голос
/ 23 января 2012

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

1 голос
/ 23 января 2012

Вы хотите, чтобы действие происходило, когда клавиша набирается? -> добавить keyListener к вашей таблице

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

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

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