JTable aus SQL nach Header sortieren & bearbeiten

karusya87

Grünschnabel
Hier ist mein Code für die Klasse Tabellenfüller. In der Liste im Gui-Fenster erscheint eine Tabelle mit dem Inhalt von z.B. Büchern(das funktioniert). Diese Tabelle würde ich gern nach Spalten sortieren und die Zeilen hinzufügen/löschen können.
Die Codes im Internet sind alle mega lang, geht es auch kürzer?

Java:
package unsereMethoden;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


public class TabellenFüller {
	
	public static DefaultTableModel tabellenFüller(ResultSet rs)
			throws SQLException {
			//test
			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);

			}
	
	public static void sort(JTable tabelle) {
		
	// hier Code für Tabelensortierung
      
    }
  }
 
die einfachste Möglichkeit, eine Tabelle (JTable) um eine Sortierfunktion zu erweitern wäre:
Java:
jTable.setAutoCreateRowSorter(true);

(nach Aufruf dieser Methode kann man auf die jew. Spalte klicken um danach zu sortieren.)

siehe:
http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#setAutoCreateRowSorter(boolean)

eine erweiterte Möglichkeit wäre:
Java:
jTable.setRowSorter(yourOwnRowSorter);
http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#setRowSorter(javax.swing.RowSorter)
 
Danke hat alles super geklappt. Bin gerade noch dabei Checkboxes für die Tabellen zu machen. Man braucht so viel Zeit wenn man die Befehle nicht kennt =((
 
Zurück