Rumah > Java > javaTutorial > Bagaimana untuk Mendayakan dan Mengendalikan Pilihan Berbilang Baris dalam JTable?

Bagaimana untuk Mendayakan dan Mengendalikan Pilihan Berbilang Baris dalam JTable?

Barbara Streisand
Lepaskan: 2024-12-05 19:53:11
asal
403 orang telah melayarinya

How to Enable and Handle Multiple Row Selections in a JTable?

JTable pemilihan berbilang baris

Dalam JTable, pengguna boleh memilih berbilang baris pada masa yang sama, yang sangat berguna dalam beberapa situasi. Sebagai contoh, anda mungkin mahu melakukan tindakan apabila pengguna memilih berbilang baris. Artikel ini akan menunjukkan kepada anda cara melakukan ini.

Untuk melaksanakan pemilihan berbilang baris, anda perlu menggunakan ListSelectionListener . Pendengar ini akan melihat sebarang perubahan pada pemilihan pengguna, dan anda kemudian boleh menggunakan kaedah getSelectedRows() untuk mendapatkan semula indeks baris yang dipilih.

    // 添加侦听器以侦听用户选择任何更改
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        public void valueChanged(ListSelectionEvent evt) {
            // 获取所选行的索引
            int[] selectedRows = table.getSelectedRows();

            // 执行所需的任何操作
            for (int i = 0; i < selectedRows.length; i++) {
                // 获得所选行的对象
                Object selectedObject = table.getValueAt(selectedRows[i], 0);

                // 执行所需的操作
            }
        }
    });
Salin selepas log masuk

Anda juga boleh menggunakan kaedah setSelectionMode() pada JTable untuk menukar bilangan baris yang dibenarkan untuk dipilih oleh pengguna. Sebagai contoh, kod berikut akan mengehadkan pengguna untuk memilih satu baris:

    // 限制用户只能选择一行
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
Salin selepas log masuk

Berikut ialah kod lengkap untuk rujukan anda:

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class MultipleRowSelectionExample extends JFrame {

    public MultipleRowSelectionExample() {
        Object[][] data = {
                {"John Doe", 30},
                {"Jane Doe", 25},
                {"Tom Smith", 40},
                {"Mary Johnson", 35}
        };

        String[] columns = {"Name", "Age"};

        JTable table = new JTable(data, columns);

        // 添加侦听器以侦听用户选择任何更改
        table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent evt) {
                // 获取所选行的索引
                int[] selectedRows = table.getSelectedRows();

                // 执行所需的任何操作
                for (int i = 0; i < selectedRows.length; i++) {
                    // 获得所选行的对象
                    Object selectedObject = table.getValueAt(selectedRows[i], 0);

                    // 执行所需的操作
                }
            }
        });

        this.add(new JScrollPane(table));
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        this.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                new MultipleRowSelectionExample();
            }
        });
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendayakan dan Mengendalikan Pilihan Berbilang Baris dalam JTable?. 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