Rumah >Java >javaTutorial >Bagaimana untuk Menambah Kawalan Pilih Semua/Tiada pada Pengepala JTable?

Bagaimana untuk Menambah Kawalan Pilih Semua/Tiada pada Pengepala JTable?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 12:19:10978semak imbas

How to Add a Select All/None Control to a JTable Header?

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!

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