Mendapatkan Baris Terpilih dalam JTable dengan Penjejakan Baris Terpilih
Masalah:
Mendapatkan baris terpilih daripada a JTable dengan JCheckBox dalam lajur pertama untuk pemilihan baris. Traversal berurutan menjadi tidak cekap dengan bilangan baris yang banyak.
Pendekatan Tradisional:
Mengulang secara berurutan melalui semua baris untuk mendapatkan baris yang dipilih. Pendekatan ini bermasalah apabila berurusan dengan beribu-ribu baris.
Cadangan Pendekatan:
Penjejakan Berasaskan Model:
Contoh Kod:
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); } }
Pengoptimuman Tambahan:
Faedah Pendekatan Berasaskan Model:
Atas ialah kandungan terperinci Bagaimana Mendapatkan Baris Terpilih dengan Cekap daripada JTable dengan Pemilihan Baris JCheckBox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!