In JTable kann der Benutzer mehrere Zeilen gleichzeitig auswählen, was in manchen Situationen sehr nützlich ist. Beispielsweise möchten Sie möglicherweise eine Aktion ausführen, wenn der Benutzer mehrere Zeilen auswählt. Dieser Artikel zeigt Ihnen, wie das geht.
Um die Auswahl mehrerer Zeilen zu implementieren, müssen Sie ListSelectionListener verwenden. Dieser Listener überwacht alle Änderungen an der Auswahl des Benutzers, und Sie können dann die Methode getSelectedRows() verwenden, um den Index der ausgewählten Zeilen abzurufen.
// 添加侦听器以侦听用户选择任何更改 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); // 执行所需的操作 } } });
Sie können auch die Methode setSelectionMode() für eine JTable verwenden, um die Anzahl der Zeilen zu ändern, die der Benutzer auswählen darf. Der folgende Code beschränkt den Benutzer beispielsweise auf die Auswahl einer Zeile:
// 限制用户只能选择一行 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
Hier ist der vollständige Code als Referenz:
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(); } }); } }
Das obige ist der detaillierte Inhalt vonWie aktiviert und handhabt man mehrere Zeilenauswahlen in einer JTable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!