lolo1971 | Bonjour,
Je suis débutant et je coince sur mon programme.
Mon problème est que j'essaie de tracer une courbe (trajectoire dans mon cas) dans un panel mais la classe paintcomponent n'est jamais appelé sauf la première fois lorsque je créé mon panel
Mon code est
Code :
- Calcul nouvelleEtude = new Calcul(this.vitesse,this.angle,this.hauteur,this.dt,this.masse,this.k, etude);
- // affichage des résultat dans un tableau compris dans des onglets avec couleur différentes à chaque étude
- String title[] = {"T (s)", "X (Mètre)","Y (Mètre)","Vx (m/s)","Vy (m/s)"," V (m/s)"};
- JTable tableau = new JTable (nouvelleEtude.getData(),title);
- tableau.setBackground(couleur[nouvelleEtude.getNombreEtude()-1]);
- onglet.add("Courbe n° "+(nouvelleEtude.getNombreEtude()), new JScrollPane(tableau));
- onglet.setFont(font1);
- onglet.setSelectedIndex(nouvelleEtude.getNombreEtude()-1);
- affichage.add(onglet);
- //affichage de la trajectoire dans des onglets avec couleur différentes à chaque étude
- Panneau courbe = new Panneau();
- courbe.setBackground(couleur[nouvelleEtude.getNombreEtude()-1]);
- ongletCourbe.add("Courbe n° "+(nouvelleEtude.getNombreEtude()),courbe);
- ongletCourbe.setSelectedIndex(nouvelleEtude.getNombreEtude()-1);
- afficheCourbe.add(ongletCourbe);
- // affichage des differents coefficients résultant des parametres
- info.setText( "\n\n Projectile : "+ choixProjectile.getSelectedItem()
- +"\n Etude : "+choixEtude.getSelectedItem()
- +"\n Masse volumique : "+this.p
- +"\n Nombre de reynolds : "+this.re
- +"\n Coéfficient de pénetration Cx : "+this.cx
- +"\n Coéfficient K : "+this.k
- +"\n\n Courbe N° : "+nouvelleEtude.getNombreEtude());
- info.repaint();
- // Tracer la courbe point par point
- float y= 229/(nouvelleEtude.getyMax()*1.1f);
- float x = 780/(nouvelleEtude.getxMax()*1.1f);
- float x1,x2,y1,y2;
- int j = 0;
- do {
- x1 = 20f +(float) tableau.getValueAt(j, 1);
- x2 = 20f +(float) tableau.getValueAt(j+1, 1);
- y1 = 20f+ (float) tableau.getValueAt(j, 2);
- y2 = 20f +(float) tableau.getValueAt(j+1, 2);
- courbe.setPosX((int)x1);
- courbe.setPosY((int)y1);
- courbe.setPosX2((int)x2);
- courbe.setPosY2((int)y2);
- courbe.repaint();
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- j++;
- }while (y2>20);
|
et ma classe panneau est
Code :
- public class Panneau extends JPanel {
- private float posX = 100;
- private float posY = 100;
- private float posX2 = -50;
- private float posY2 = -50;
- public void paintcomponent(Graphics g){
- super.paintComponent(g);
- Graphics2D g2 = (Graphics2D) g;
- g2.setColor(Color.red);
- g2.drawOval((int) posX, (int) posY, 50, 50);
- g2.draw(new Line2D.Float(posX, posY, posX2, posY2));
- }
- public float getPosX() {
- return posX;
- }
- public void setPosX(float x1) {
- this.posX = x1;
- }
- public float getPosY() {
- return posY;
- }
- public void setPosY(float posY) {
- this.posY = posY;
- }
- /**
- * @return the posX2
- */
- protected float getPosX2() {
- return posX2;
- }
- /**
- * @param posX2 the posX2 to set
- */
- protected void setPosX2(float posX2) {
- this.posX2 = posX2;
- }
- /**
- * @return the posY2
- */
- protected float getPosY2() {
- return posY2;
- }
- /**
- * @param posY2 the posY2 to set
- */
- protected void setPosY2(float posY2) {
- this.posY2 = posY2;
- }
- }
|
Malgré mes recherches, je suis bloqué.
Pour info j'utilise Box comme Layout et j'ai l'impression que cela vient peut être de cela.
Je remercie d'avance toutes les personnes qui peuvent m'aider Message édité par lolo1971 le 25-02-2018 à 08:07:03
|