Bonjour,

Voilà j'ai fait un table row sorter, il fonctionne seulement je ne peux plus décocher le champs qui subit le premier tri.
Oui parce que mon row sorter fait un tri a deux champs par exemple il trie une biliothèque par année, puis on peux retrier par prix de l'ouvrage.

dans ce cas, j'arrive pas à décocher année.
voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private class TableColumnListener implements RowSorterListener {
			boolean triee;
			private List<SortKey> sortedKeys;
			public TableColumnListener() {
				sortedKeys = new ArrayList<SortKey>();
 
			}
 
			@SuppressWarnings("unchecked")
			@Override
			public void sorterChanged(RowSorterEvent e) {
				if(e.getType() == Type.SORT_ORDER_CHANGED){
 
					int lastColumn = table.getTableHeader().columnAtPoint(table.getTableHeader().getMousePosition());
 
					SortKey monterKey = new SortKey(lastColumn, SortOrder.ASCENDING);
					SortKey descendreKey = new SortKey(lastColumn, SortOrder.DESCENDING);
 
					if((sortedKeys.contains(monterKey)||sortedKeys.contains(descendreKey))){
						if(triee){//triee a une valeur false
							if(sortedKeys.contains(monterKey))
								sortedKeys.set(sortedKeys.indexOf(monterKey),new SortKey(monterKey.getColumn(),SortOrder.DESCENDING));
							else if (sortedKeys.contains(descendreKey))
								sortedKeys.set(sortedKeys.indexOf(descendreKey),new SortKey(descendreKey.getColumn(),SortOrder.ASCENDING));
						}
						triee = !triee;//pour que le booleen triee ait une valeur false, pour faire le tri inverse
 
					}else{
						sortedKeys.add(descendreKey);
					}
					table.getRowSorter().setSortKeys(sortedKeys);
					((TableRowSorter<TableModel>) table.getRowSorter()).setMaxSortKeys(table.getColumnCount());	
				}
			}
		}
Je me doute que c'est l'affaire d'une ligne mais je cale :S