"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como obter linhas selecionadas com eficiência de um jtable com a seleção da linha Jcheckbox?

Como obter linhas selecionadas com eficiência de um jtable com a seleção da linha Jcheckbox?

Postado em 2025-02-06
Navegar:895

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

recebendo linhas selecionadas no jtable com rastreamento de linha selecionado

Problem:
obtendo linhas selecionadas de forma eficiente de a JTable com um jcheckbox na primeira coluna para seleção de linha. Traversal seqüencial se torna ineficiente com um grande número de linhas. Essa abordagem é problemática ao lidar com milhares de linhas. Um conjunto contendo os índices de linha selecionados sempre que o valor do JCheckBox muda. Exemplo de código &&]:

import javax.swing.table.abstracttableModel; importar java.util.set; importar java.util.treeset; classe pública CheckModel estende abstrataTableModel { // ... Conjunto privado checked = new TreeSet (); // ... @Override public void SetValuEat (Objeto Avalue, Int Row, int col) { Booleano B = (booleano) Avalue; rowlist.set (linha, b); if (b) { checked.add (linha); } outro { checked.remove (linha); } firetableRowsupdated (linha, linha); } }

otimização adicional:


use uma estrutura de dados leve, como um árvore, para armazenar os índices de linha selecionados para iteração eficiente. Considere o uso de uma estrutura de dados diferente para armazenar linhas selecionadas se o consumo de memória se tornar um problema. ] Acesso ao tempo constante às linhas selecionadas, independentemente do número total de linhas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3