Lol j'ai regardé ton soucis et j'ai trouvé la solution :
Ca m'a pris un peu la tête mais le problème est tt bête :)
Je vais illustrer ca par un exemple :
A ton initialisation tu as par exemple
Trait[0] (x:10, y:10, taille:30)
Trait[1] (x:10, y:15, taille:20)
Trait[2] (x:10, y:20, taille:50)
Ensuite tu tries tes éléments par taille donc tu as
Trait[0] (x:10, y:15, taille:20)
Trait[1] (x:10, y:10, taille:30)
Trait[2] (x:10, y:20, taille:50)
Le truk c'est que quand tu vas afficher Trait[0] en premier
ben il sera tjr affiché en position verticale 15 et non en 10
comme il devrait l'être normalement.
Une résolution:
import java.awt.Color;
import java.awt.Graphics;
public class Trait
{
public int taille;
public Trait(int aTaille)
{
taille = aTaille;
}
public void dessiner (Graphics g, int coordX, int coordY)
{
g.setColor(Color.blue);
g.drawLine(coordX, coordY, (coordX +taille), coordY);
}
}
import java.applet.*;
import java.awt.*;
public class Rect extends Applet implements Runnable
{
private Thread t; //création d'un thread t
private Trait tab[]; //création d'un tableau tab de type Traie
public Rect() //constructeur
{
tab = new Trait[10] ; //initialisation du tableau tab de Traie de taille 10
t = new Thread(this);
for(int i = 0;i < 10; i++) //on génére 10 traits
{
int taille = (int) (Math.random() * 400 +1); //pour la taille aléatoire d'un traie
tab[i]= new Trait(taille);
}
t.start();
}
public void paint (Graphics g)
{
setSize(500, 200); //taille de l'applet
g.drawRect(10,10,getSize().width - 20 ,getSize().height - 20); //pour dessiner un rectangle
for(int i = 0; i < 10; i++) //pour les 10 traits du tableau tab
{
tab[i].dessiner(g, 10, 10 + (i * 5)); //on dessine un trait
}
}
public void triselection() //tri
{
int i,j,m;
for(i=0;i<(tab.length-1);i++)
{
m = i;
for(j=i+1;j<tab.length;j++)
if(tab[j].taille < tab[m].taille)
m = j;
if (m != i)
{ Trait c = tab[i];
tab[i] = tab[m];
tab[m] = c;
}
}
}
public void run()
{
triselection(); //lance le tri sélection
repaint(); //permet de réactualiser l'applet
}
}
Bonne chance,
Niroken
Lol j'ai regardé ton soucis et j'ai trouvé la solution :
Ca m'a pris un peu la tête mais le problème est tt bête :)
Je vais illustrer ca par un exemple :
A ton initialisation tu as par exemple
Trait[0] (x:10, y:10, taille:30)
Trait[1] (x:10, y:15, taille:20)
Trait[2] (x:10, y:20, taille:50)
Ensuite tu tries tes éléments par taille donc tu as
Trait[0] (x:10, y:15, taille:20)
Trait[1] (x:10, y:10, taille:30)
Trait[2] (x:10, y:20, taille:50)
Le truk c'est que quand tu vas afficher Trait[0] en premier
ben il sera tjr affiché en position verticale 15 et non en 10
comme il devrait l'être normalement.
Une résolution:
Bonne chance,
Niroken