Membenarkan pengguna memilih berbilang sel tidak berterusan dalam JTable boleh menjadi ciri yang berharga untuk pelbagai aplikasi. Berikut ialah penerokaan terperinci tentang pendekatan untuk mencapai fungsi ini:
Komponen JTable standard tidak menyediakan pilihan langsung untuk memilih berbilang sel bukan berterusan. Walau bagaimanapun, terdapat dua kaedah yang boleh dimanfaatkan dalam kombinasi:
Walau bagaimanapun, pendekatan ini hanya membenarkan pemilihan sel berturut-turut dalam satu baris atau lajur.
Pendekatan alternatif ialah mengubah suai pengendalian acara tetikus JTable. Dengan mengatasi kaedah processMouseEvent, anda boleh memaksa JTable untuk merawat sebarang klik tetikus dengan kekunci Control ditekan sebagai togol pemilihan sel. Ini membolehkan anda memilih sel individu tanpa mengira kedudukannya.
import java.awt.Component; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import javax.swing.JTable; public class TableSelection extends JTable { @Override protected void processMouseEvent(MouseEvent e) { int modifiers = e.getModifiers() | InputEvent.CTRL_MASK; MouseEvent myME = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), modifiers, e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); super.processMouseEvent(myME); } }
Dengan menggunakan pendekatan ini, anda memperoleh keupayaan untuk memilih sel individu dan tidak berterusan dalam JTable anda. Ambil perhatian bahawa ini tidak memerlukan sebarang pengubahsuaian pada ListSelectionModel atau mod pemilihan JTable.
Seperti yang dicadangkan dalam soalan, melaksanakan ListSelectionModel anda sendiri menyediakan kawalan sepenuhnya ke atas mekanisme pemilihan. Pendekatan ini menawarkan fleksibiliti tertinggi dan membolehkan anda menyesuaikan gelagat pemilihan mengikut keperluan.
Perlu ambil perhatian bahawa sesetengah operasi JTable, seperti pengisihan atau penapisan, mungkin tidak berfungsi seperti yang diharapkan dengan pemilihan sel tidak berterusan. Selain itu, anda mungkin perlu mengendalikan pewarnaan atau penggayaan sel yang dipilih secara manual.
Walaupun JTable tidak menyokong pemilihan sel bukan berterusan secara asli, teknik yang disebutkan di atas menyediakan penyelesaian yang berkesan untuk mencapai matlamat ini. kefungsian. Dengan memahami batasan dan menyesuaikan kaedah yang sesuai, anda boleh meningkatkan pengalaman pengguna JTable anda dan memenuhi keperluan aplikasi tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Pemilihan Sel Tidak Berterusan dalam JTable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!