alors maintenant j'ai plus ou moins presque reussi à 'esquisser' ce que je voulais faire, voici mes classes:
public class MainTest extends JFrame{
public MainTest(){
super("creation d'elements" );
setSize(500, 500);
show();
}
public void paint(Graphics g){
Rectangle rec1 = new Rectangle(5, 10, 100, 50);
Rectangle rec2 = new Rectangle(115, 10, 100, 50);
rec1.trace(g);
rec2.trace(g);
}
public static void main(String args[]){
MainTest app = new MainTest();
//int Rectx, int Recty, int RectLongx, int RectLongy
app.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
}
public class Rectangle extends JFrame
{
private int Rectx, Recty, RectLongx, RectLongy;
private static int textx, texty;
public Rectangle(int Rectx, int Recty, int RectLongx, int RectLongy)
{
this.Rectx = Rectx;
this.Recty = Recty;
this.RectLongx = RectLongx;
this.RectLongy = RectLongy;
textx = Rectx + 20;
texty = Recty + 5;
}
public void trace(Graphics g)
{
g.setColor(Color.WHITE);
g.drawRect(Rectx, Recty, RectLongx, RectLongy);
g.drawString("contenu", textx, texty);
System.out.println("coordonnee"+textx+ ", "+ texty);
}
}
par contre le probleme que j'ai c'est pour afficher le texte à 'l'interieur ' des rectangles
en effet le g.drawString() n'affiche rien, pensant que c'etait du à l'instance j'ai mis textx et texy qui sont les coordonnees d'affichage du texte en static
dans l'ordre:
1- instanciation des rectangles (calcul coordonnees affichage rectangle + texte)
2- appel a la fonction trace de chacun des objet pour les tracers dans la JFrame, le probleme c'est que le texte ne s'affiche pas
-> j'ai essaye de mettre un bloc en dur et celui-ci s'affiche tout a fait correctement:
public void trace(Graphics g)
{
g.setColor(Color.WHITE);
g.drawRect(Rectx, Recty, RectLongx, RectLongy);
g.drawString("contenu", textx, texty); // n'affiche rien
g.drawString("contenu", 250, 50); // s'affiche correctement
System.out.println("coordonnee"+textx+ ", "+ texty);
}
Message édité par kungouf le 10-09-2004 à 15:02:41