Home > Java > javaTutorial > How to Enable and Handle Multiple Row Selections in a JTable?

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

Barbara Streisand
Release: 2024-12-05 19:53:11
Original
403 people have browsed it

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

Multiple row selection JTable

In JTable, user can select multiple rows at the same time, which is very useful in some situations. For example, you might want to perform an action when the user selects multiple rows. This article will show you how to do this.

To implement multi-row selection, you need to use ListSelectionListener . This listener will watch for any changes to the user's selection, and you can then use the getSelectedRows() method to retrieve the index of the selected rows.

    // 添加侦听器以侦听用户选择任何更改
    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);

                // 执行所需的操作
            }
        }
    });
Copy after login

You can also use the setSelectionMode() method on a JTable to change the number of rows the user is allowed to select. For example, the following code will limit the user to select one row:

    // 限制用户只能选择一行
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
Copy after login

Here is the complete code for your reference:

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();
            }
        });
    }
}
Copy after login

The above is the detailed content of How to Enable and Handle Multiple Row Selections in a JTable?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template