Heim >Java >javaLernprogramm >Wie fülle ich eine JTable aus einem ResultSet in Java?

Wie fülle ich eine JTable aus einem ResultSet in Java?

Susan Sarandon
Susan SarandonOriginal
2024-12-06 06:12:13419Durchsuche

How to Populate a JTable from a ResultSet in Java?

Auffüllen einer JTable aus ResultSet

Wie in der Java-Dokumentation beschrieben, akzeptiert der JTable-Konstruktor ein TableModel als Argument. Das bedeutet, dass Sie die DefaultTableModel-Klasse verwenden können, um ein Tabellenmodell basierend auf einem ResultSet zu erstellen.

Hier ist ein Beispiel dafür:

ResultSet rs = stmt.executeQuery("select * from product_info");
JTable table = new JTable(new DefaultTableModel(buildTableModel(rs), columnNames));

Die buildTableModel-Methode akzeptiert ein ResultSet als ein Argument und gibt ein TableModel-Objekt zurück. Hier ist ein Beispiel für die Implementierung dieser Methode:

public static DefaultTableModel buildTableModel(ResultSet rs)
        throws SQLException {

    ResultSetMetaData metaData = rs.getMetaData();

    // names of columns
    Vector<String> columnNames = new Vector<String>();
    int columnCount = metaData.getColumnCount();
    for (int column = 1; column <= columnCount; column++) {
        columnNames.add(metaData.getColumnName(column));
    }

    // data of the table
    Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    while (rs.next()) {
        Vector<Object> vector = new Vector<Object>();
        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
            vector.add(rs.getObject(columnIndex));
        }
        data.add(vector);
    }

    return new DefaultTableModel(data, columnNames);

}

Das obige ist der detaillierte Inhalt vonWie fülle ich eine JTable aus einem ResultSet in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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