Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mendapatkan Kembali Baris Terpilih daripada JTable dengan Set Data Besar dengan Cekap?

Bagaimanakah Saya Boleh Mendapatkan Kembali Baris Terpilih daripada JTable dengan Set Data Besar dengan Cekap?

Barbara Streisand
Barbara Streisandasal
2024-11-26 02:28:09837semak imbas

How Can I Efficiently Retrieve Selected Rows from a JTable with Large Datasets?

Dengan Cekap Mendapatkan Baris Terpilih daripada JTable menggunakan AbstractTableModel

Proses mendapatkan semula baris terpilih daripada JTable boleh menjadi tidak cekap apabila berurusan dengan set data yang besar , kerana ia melibatkan merentasi semua baris secara berurutan. Artikel ini membentangkan pendekatan yang lebih cekap menggunakan mekanisme pendengar berasaskan AbstractTableModel.

Pernyataan Masalah

Dalam JTable dengan JCheckBox dalam lajur pertama untuk pemilihan baris, mendapatkan semula baris yang dipilih memerlukan lelaran melalui semua baris untuk mengumpulkan baris yang disemak. Apabila set data berkembang, ini menjadi pendekatan yang tidak diingini.

Penyelesaian Cadangan: Laksanakan Pendengar TableModel

Penyelesaian melibatkan penambahan TableModelListener pada lajur JCheckBox. Apabila keadaan JCheckBox berubah (PILIH/DIPILIH) dalam kelas pendengar, tatasusunan Rows yang dipilih dikemas kini. Selain itu, table.getSelectedRow(..) boleh digunakan dalam kelas pendengar untuk menangkap indeks baris yang dipilih.

Adakah Terdapat Cara yang Lebih Baik?

Contoh yang disediakan mempamerkan pendekatan alternatif, di mana TableModel mengemas kini Set dinamakan diperiksa apabila perubahan dalam kaedah setValueAt()nya. JList bersebelahan terikat pada TableModel ini dan memaparkan nombor baris yang dipilih secara dinamik. Kaedah ini terbukti cekap apabila bilangan baris yang dipilih adalah kecil berbanding dengan jumlah kiraan baris.

Butiran Pelaksanaan

Kelas CheckModel memanjangkan AbstractTableModel dan mengendalikan rowList dan diperiksa set, mengekalkannya berdasarkan perubahan keadaan kotak semak. Kelas DisplayPanel mengandungi JList yang mendengar perubahan model jadual dan mengemas kini paparannya dengan sewajarnya.

Kesimpulan

Walaupun pendekatan traversal baris berjujukan mungkin mencukupi untuk set data kecil, menggunakan pendengar TableModel atau kaedah ganti yang ditunjukkan di atas memberikan keuntungan kecekapan yang ketara apabila berurusan dengan set data yang besar. Teknik ini membolehkan mendapatkan semula baris terpilih dengan cekap, tanpa mengira saiz jadual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kembali Baris Terpilih daripada JTable dengan Set Data Besar dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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