Rumah > Java > javaTutorial > teks badan

Bagaimana Mendapatkan Baris Terpilih dengan Cekap daripada JTable dengan Pemilihan Baris JCheckBox?

Susan Sarandon
Lepaskan: 2024-11-22 13:03:17
asal
595 orang telah melayarinya

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

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:

  • Kemas kini a Set mengandungi indeks baris yang dipilih apabila nilai JCheckBox berubah.
  • Kelas pendengar pada model jadual mengemas kini Set berdasarkan pemilihan baris.

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);
    }
}
Salin selepas log masuk

Pengoptimuman Tambahan:

  • Gunakan struktur data yang ringan, seperti TreeSet, untuk menyimpan indeks baris yang dipilih untuk cekap lelaran.
  • Pertimbangkan untuk menggunakan struktur data yang berbeza untuk menyimpan baris terpilih jika penggunaan memori menjadi isu.

Faedah Pendekatan Berasaskan Model:

  • Akses masa yang berterusan kepada baris yang dipilih, tanpa mengira jumlah bilangan baris.
  • Tidak memerlukan traversal berurutan, menjadikan pengambilan pemilihan sangat cekap.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan