import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; public class TabelleSortieren { public TabelleSortieren() { init(); } private void init() { String[] colNames = new String[] { "Null", "Eins", "Zwei" }; String[][] data = { new String[] { "Katze", "Wurm", "Floh" }, new String[] { "Helga", "Doris", "Berta" }, new String[] { "Pizza", "Kekse", "Labskaus" } }; DefaultTableModel model = new DefaultTableModel(data, colNames); JTable table = new JTable(model); table.setShowGrid(true); // default Gitterfarbe: weiß! table.setGridColor(Color.gray); JTableHeader header = table.getTableHeader(); header.setBackground(Color.yellow); JPanel panel = new JPanel(); panel.add(new JScrollPane(table)); enableSorting(table); JFrame frame = new JFrame("Tabelle sortieren"); frame.add(panel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } public void enableSorting(JTable table) { DefaultTableModel model = (DefaultTableModel) table.getModel(); if (model == null) return; TableRowSorter sorter = new TableRowSorter(); table.setRowSorter(sorter); sorter.setModel(model); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new TabelleSortieren()); } }