«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно получить выбранные строки из JTable с выбором jCheckbox строки?

Как эффективно получить выбранные строки из JTable с выбором jCheckbox строки?

Опубликовано в 2025-02-06
Просматривать:904

How to Efficiently Get Selected Rows from a JTable with JCheckBox Row Selection?

получение выбранных строк в JTable с выбранным отслеживанием строк

задача:
эффективно полученные выбранные строки из JTable с JCheckbox в первом столбце для выбора строк. Последовательный обход становится неэффективным с большим количеством строк. Этот подход проблематичен при работе с тысячами строк. A SET , содержащий выбранные индексы строк, всякий раз, когда изменяется значение jCheckbox. &&&] пример кода:

импортировать javax.swing.table.abstracttablemodel; импортировать java.util.set; импортировать java.util.treeset; public Class checkmodel Extables AbstracttableModel { // ... Приватный набор checked = new Treeset (); // ... @Override public void setValueat (Abyt Avalue, int row, int col) { логический B = (логический) лады; rowlist.set (row, b); if (b) { chered.add (ряд); } еще { chered.remove (row); } FireTableRowsUpdated (row, row); } }
]

дополнительная оптимизация:


] Используйте легкую структуру данных, такую ​​как деревья, чтобы хранить выбранные индексы строк для эффективной итерации. ] рассмотреть вопрос о использовании другой структуры данных для хранения выбранных строк, если потребление памяти становится проблемой.

    ]
  • . ] Постоянный время доступа к выбранным строкам, независимо от общего количества строк.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3