Ausgewählte Zeilen in JTable mit der Nachverfolgung ausgewählter Zeilen abrufen
Problem:
Effizientes Abrufen ausgewählter Zeilen aus a JTable mit einer JCheckBox in der ersten Spalte zur Zeilenauswahl. Sequentielles Durchlaufen wird bei einer großen Anzahl von Zeilen ineffizient.
Traditioneller Ansatz:
Sequentielles Durchlaufen aller Zeilen, um ausgewählte Zeilen zu erhalten. Dieser Ansatz ist problematisch, wenn Tausende von Zeilen verarbeitet werden.
Vorgeschlagener Ansatz:
Modellbasiertes Tracking:
Codebeispiel:
import javax.swing.table.AbstractTableModel; import java.util.Set; import java.util.TreeSet; public class CheckModel extends AbstractTableModel { // ... private Set<Integer> checked = new TreeSet<>(); // ... @Override public void setValueAt(Object aValue, int row, int col) { boolean b = (Boolean) aValue; rowList.set(row, b); if (b) { checked.add(row); } else { checked.remove(row); } fireTableRowsUpdated(row, row); } }
Zusätzliche Optimierung:
Vorteile des modellbasierten Ansatzes:
Das obige ist der detaillierte Inhalt vonWie rufe ich mit der JCheckBox-Zeilenauswahl effizient ausgewählte Zeilen aus einer JTable ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!