Cara Membenamkan Kawalan dalam Pengepala JTable
Memasukkan kawalan ke dalam pengepala JTable membolehkan pengurusan lajur yang mudah data, seperti memilih semua atau tiada kotak pilihan dalam lajur Boolean. Berikut ialah pendekatan komprehensif yang menangani keperluan untuk kawalan yang berkelakuan baik dalam pengepala JTable.
Pelaksanaan menggunakan SelectAllHeader Class
Kelas SelectAllHeader memanjangkan JToggleButton dan melaksanakan TableCellRenderer buat butang togol yang mengawal kotak semak dalam Boolean yang ditentukan lajur. Apabila butang togol diklik, ia menetapkan semua kotak pilihan dalam lajur itu kepada keadaan yang dipilih atau dinyahpilih.
class SelectAllHeader extends JToggleButton implements TableCellRenderer { private static final String ALL = "✓ Select all"; private static final String NONE = "✓ Select none"; // ... public SelectAllHeader(JTable table, int targetColumn) { // ... } @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { return this; } // ... }
Penggunaan
Untuk menggunakan kawalan ini, tambah ia sebagai pemapar pengepala kepada lajur yang ditentukan:
TableColumn tc = table.getColumnModel().getColumn(BOOLEAN_COL); tc.setHeaderRenderer(new SelectAllHeader(table, BOOLEAN_COL));
Tambahan Ciri
Kelas SelectAllHeader menyemak keadaan kotak pilihan dalam lajur dan menogol keadaannya sendiri dengan sewajarnya. Ia juga mengendalikan acara tetikus untuk memastikan butang togol diklik hanya pada lajur yang dikehendaki.
Kesimpulan
Dengan menggunakan kelas SelectAllHeader, anda boleh membenamkan telaga dengan mudah -kawalan berkelakuan dalam pengepala JTable, menyediakan cara yang mudah untuk memilih atau menyahpilih semua kotak pilihan dalam lajur Boolean. Pendekatan ini fleksibel dan boleh digunakan pada mana-mana lajur yang menggunakan pemapar kotak pilihan.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Kawalan Pilih Semua/Tiada pada Pengepala JTable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!