package tableExample;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import org.jdesktop.swingx.JXTable;
public class SortingProblem extends JFrame {
private JPanel contentPane;
private JScrollPane scrollPane;
private JXTable table;
private TableRowSorter<TableModel> rowSorter;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SortingProblem frame = new SortingProblem();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public SortingProblem() {
initialize();
}
private void initialize() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.add(getScrollPane(), BorderLayout.CENTER);
}
private JScrollPane getScrollPane() {
if (scrollPane == null) {
scrollPane = new JScrollPane();
scrollPane.setViewportView(getTable());
}
return scrollPane;
}
private JXTable getTable() {
if (table == null) {
table = new JXTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{"1", "3", "2"},
{"2", "2", "1"},
{"3", "1", "3"},
{null, null, null},
},
new String[] {
"Spalte A", "Spalte B", "Spalte C"
}
));
rowSorter = new TableRowSorter<TableModel>(table.getModel());
table.setRowSorter(rowSorter);
}
return table;
}
}