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); // 执行所需的操作 } } });
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);
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(); } }); } }
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!