Bonjour à tous!

Mon problème est simple, j'ai 2 algorithmes classiques de tris (par insertion et tri rapide Quicksort) et mon devoir est de pouvoir rendre visible les processus au fur et à mesure du tri pour comprendre leurs fonctionnements.
(par défaut j'utilise du swing)

Comme les algos trient un tableau d'integer je me suis dis que je pouvais m'en sortir en utilisant un JTable auquel j'ajouterais , ligne après ligne, le tableau en cours de tri avec addRow ou autre. J'envisage ensuite de colorier certaines cases en rouge/vert histoire de montrer quelles cellules vont changer dans la ligne suivante c'est pour ça que JTable me parait plutôt cool comme outil.
Mais n'étant pas du tout calé en info, je n'arrive pas bien à comprendre comment ça fonctionne, et donc ça ne fonctionne pas.

voici mon code pour le moment :

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
 
public class Tri extends JFrame { // frame= crée des fenêtres
 
	protected static JMenuBar mb = new JMenuBar(); // barre de menu fourni par awt
	protected static JMenu menuTris=new JMenu("Tris");
	protected static JMenuItem miTriIns =new JMenuItem("Tri par insert.");
	protected static JMenuItem miTriRapide =new JMenuItem("Quicksort");
 
	int[] atrier= new int[10];
 
 
	public Tri(){
		super("Tri");
 
		setJMenuBar(mb);
		mb.add(menuTris);
		menuTris.add(miTriIns);
		menuTris.add(miTriRapide);
 
		miTriIns.addActionListener(new ActionTriInsertion());
 
		pack();
		setVisible(true);
	}
 
	class ActionTriInsertion implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			DefaultTableModel model = new DefaultTableModel();
			JTable table = new Jtable(model);
			add(table);
			Object[] atrier2= new Object[10];
 
			for(int i = 0; i < atrier.lenght; ++i){
    		      atrier[i] = (int) (Math.random() * 128);
 		    }
 
  			int	j;
			int v;
 			for (int i = 1; i < atrier.lenght; ++i) {
    			v = atrier[i]; 
				j = i;
       			while (j > 0  &&  atrier[j-1] > v) {
        			atrier[j] = atrier[j-1]; 
      				--j;
        		}
        		atrier[j] = v;
				for(int y=0; y<atrier.lenght; y++){
					atrier2[y]= new Integer(atrier[y]);
				}
				model.addRow(atrier2[]);		
    		}
		}
  	}
 
	public static void main(String [] args){
		new Tri();
	}
 
}
si quelqu'un à quelque chose de plus judicieux comme idée je suis preneur aussi.
Merci !