Swing Invalid SortKey?!

Burny91

Mitglied
Hi Leute,

bin gerade dabei eine Highscoreliste via JTable zu machen.
Möchte beim Aufruf der Klasse das nach der Zeit sortiert wird. Habe das in einem vorherigem Projekt hinbekommen, doch als ich nun mit dem JTableModel gearbeitet habe funktioniert das nicht mehr. Ich erhalte eine : Invalid SortKey Exception -.-

easyScore() sind meine Punkte, welche der benötigten Zeit entsprechen, also bitte nicht verwirren lassen :)

Hier mal der Code:

Java:
public class MyModelTableDemo {
	
	public static csv_reader csv_r = new csv_reader();;

	public MyModelTableDemo(){
		
		TableModel model = highscoreModel();
		
		JTable table = new JTable( model );
		
		TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>();
		List<RowSorter.SortKey> sortKey = new ArrayList<RowSorter.SortKey>();
		sortKey.add(new RowSorter.SortKey(1, SortOrder.DESCENDING));
		sorter.setSortKeys(sortKey);
		sorter.setModel(model);
		table.setRowSorter(sorter);		
		
		
		JFrame frame = new JFrame("HighscoreDemo");
		frame.getContentPane().add(new JScrollPane(table));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
	
	private static TableModel highscoreModel(){
		Object[] names = {"Nr.", "Name", "Time"};
		
		ArrayList<Integer> maxV = csv_r.searchArrayMax(csv_r.csvfile);
		Integer easyObj = (Integer) maxV.get(0);
		int easy = easyObj.intValue();
		
		DefaultTableModel model = new DefaultTableModel( names, 0){
			@Override
            public Class<?> getColumnClass( int column ) {
                switch( column ){
                    case 0: return String.class;
                    case 1: return String.class;
                    case 2: return Integer.class;
                    default: return Object.class;
                }
			}
		
			public boolean isCellEditable(int rowIndex, int columnIndex) {
                return false;
            }

		
			
		};
		
		for (int i = 0; i < easy; i++){
			Object[] row = { String.valueOf(i), easyName(i), easyScore(i)};
			
			model.addRow( row );
		}
		return model;
	}
	
	private static String easyName(int index){
		Object[][] easy = csv_r.getEasyList();
		
		return (String) easy[index][0];
	}
	
	private static Integer easyScore(int index){
		Object[][] easy = csv_r.getEasyList();
		return (Integer) easy[index][1];
	}
	
	public static void main (String args[]){
		MyModelTableDemo mmt = new MyModelTableDemo();
	}
}

Hoffe auf baldige Hilfe :)
 

Ähnliche Java Themen

Neue Themen


Oben