Heim > Java > javaLernprogramm > Wie aktiviert und handhabt man mehrere Zeilenauswahlen in einer JTable?

Wie aktiviert und handhabt man mehrere Zeilenauswahlen in einer JTable?

Barbara Streisand
Freigeben: 2024-12-05 19:53:11
Original
404 Leute haben es durchsucht

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

Mehrere Zeilenauswahl JTable

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);

                // 执行所需的操作
            }
        }
    });
Nach dem Login kopieren

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);
Nach dem Login kopieren

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();
            }
        });
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage