Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1431 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Probleme repaint et passage de variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme repaint et passage de variables

n°1588410
plzhelp
Posté le 18-07-2007 à 17:45:46  profilanswer
 

Bon, je decouvre Java et je voudrais qu'une droite allant du point (0,0) au point (100,100) se trace sur ma fenetre lorsque je clique dessus, probleme quand je clique rien ne se passe :/ J'ai l'impression que ma variable parametre qui definit les coordonnées du point final de la droite a tracer ne passe pas correctement d'une classe à une autre et que donc rien ne se passe mais je ne vois pas ou est mon erreur.
 
Mon code:
 
Classe Demarrer:

Code :
  1. public class Demarrer{
  2. /**
  3.  * @param args
  4.  */
  5. public static void main(String[] args) {
  6.  new FenetrePrincipale();
  7. }
  8. }


 
Classe FenetrePrincipale:

Code :
  1. import java.awt.BorderLayout;
  2. import java.awt.event.WindowAdapter;
  3. import java.awt.event.WindowEvent;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. public class FenetrePrincipale {
  7. JPanel fenetrePrincipale;
  8. int parametre = 0;
  9. Affichage affichage;
  10. //Construteur
  11. FenetrePrincipale(){
  12.  fenetrePrincipale = new JPanel();
  13.  BorderLayout disposition = new BorderLayout();
  14.  fenetrePrincipale.setLayout(disposition);
  15.  affichage = new Affichage(parametre);
  16.  fenetrePrincipale.add("Center",affichage);
  17.  //Creation de la fenetre
  18.  JFrame frame = new JFrame("Fenetre Principale" );
  19.  frame.setContentPane(fenetrePrincipale);
  20.  frame.setSize(250, 250);
  21.  frame.setVisible(true);
  22.  GestionEvenement gestionEvenement = new GestionEvenement(this);
  23.  fenetrePrincipale.addMouseListener(gestionEvenement);
  24.  // Window listener pour la fenetre principale         
  25.  frame.addWindowListener(new WindowAdapter(){           
  26.   public void windowClosing(WindowEvent e){               
  27.    System.exit(0);           
  28.    }       
  29.   });
  30. }
  31. //Methodes
  32. public void UpdateParametre(){
  33.  parametre = 100;
  34.  affichage.repaint();
  35. }
  36. }


 
Classe Affichage:

Code :
  1. import java.awt.Graphics;
  2. import javax.swing.JPanel;
  3. public class Affichage extends JPanel {
  4. /**
  5.  *  
  6.  */
  7. private static final long serialVersionUID = 1L;
  8. int parametre;
  9. //Constructeur
  10. Affichage(int p){
  11.  parametre = p;
  12. }
  13. //Methodes
  14. public void paintComponent(Graphics g){
  15.  g.drawLine(0, 0, parametre, parametre);
  16. }
  17. }


 
Classe GestionEvenement:

Code :
  1. import java.awt.event.MouseEvent;
  2. import java.awt.event.MouseListener;
  3. public class GestionEvenement implements MouseListener {
  4. FenetrePrincipale refFenetrePrincipale;
  5. GestionEvenement(FenetrePrincipale refFenetrePrincipale){
  6.  this.refFenetrePrincipale = refFenetrePrincipale;
  7. }
  8. @Override
  9. public void mouseClicked(MouseEvent e) {
  10.  // TODO Auto-generated method stub
  11. }
  12. @Override
  13. public void mouseEntered(MouseEvent e) {
  14.  // TODO Auto-generated method stub
  15. }
  16. @Override
  17. public void mouseExited(MouseEvent e) {
  18.  // TODO Auto-generated method stub
  19. }
  20. @Override
  21. public void mousePressed(MouseEvent e) {
  22.  // TODO Auto-generated method stub
  23. }
  24. @Override
  25. public void mouseReleased(MouseEvent e) {
  26.  refFenetrePrincipale.UpdateParametre();
  27. }
  28. }


Message édité par plzhelp le 18-07-2007 à 17:47:24

---------------
...
mood
Publicité
Posté le 18-07-2007 à 17:45:46  profilanswer
 

n°1588412
zapan666
Tout est relatif
Posté le 18-07-2007 à 17:51:07  profilanswer
 

parametre est un int donc type de base donc c'est la valeur qui est passé à Affichage lors de la construction de l'objet et non une référence vers paramètre

Message cité 1 fois
Message édité par zapan666 le 18-07-2007 à 17:51:40

---------------
my flick r - Just Tab it !
n°1588428
plzhelp
Posté le 18-07-2007 à 18:06:40  profilanswer
 

zapan666 a écrit :

parametre est un int donc type de base donc c'est la valeur qui est passé à Affichage lors de la construction de l'objet et non une référence vers paramètre


 
Ok je vois, c'est ce que je pensais, donc j'ai modifié mon code en envoyant directement à la classe Affichage une reference à toute ma classe FenetrePrincipale comme ca je suis presque sur que la reference à parametre passera aussi.
 
Classe FenetrePrincipale

Code :
  1. import java.awt.BorderLayout;
  2. import java.awt.event.WindowAdapter;
  3. import java.awt.event.WindowEvent;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. public class FenetrePrincipale {
  7. JPanel fenetrePrincipale;
  8. int parametre = 0;
  9. Affichage affichage;
  10. //Construteur
  11. FenetrePrincipale(){
  12.  fenetrePrincipale = new JPanel();
  13.  BorderLayout disposition = new BorderLayout();
  14.  fenetrePrincipale.setLayout(disposition);
  15.  affichage = new Affichage(this);
  16.  fenetrePrincipale.add("Center",affichage);
  17.  //Creation de la fenetre
  18.  JFrame frame = new JFrame("Fenetre Principale" );
  19.  frame.setContentPane(fenetrePrincipale);
  20.  frame.setSize(250, 250);
  21.  frame.setVisible(true);
  22.  GestionEvenement gestionEvenement = new GestionEvenement(this);
  23.  fenetrePrincipale.addMouseListener(gestionEvenement);
  24.  // Window listener pour la fenetre principale         
  25.  frame.addWindowListener(new WindowAdapter(){           
  26.   public void windowClosing(WindowEvent e){               
  27.    System.exit(0);           
  28.    }       
  29.   });
  30. }
  31. //Methodes
  32. public void UpdateParametre(){
  33.  parametre = 100;
  34.  affichage.repaint();
  35. }
  36. }


 
Classe Affichage

Code :
  1. import java.awt.Graphics;
  2. import javax.swing.JPanel;
  3. public class Affichage extends JPanel {
  4. /**
  5.  *  
  6.  */
  7. private static final long serialVersionUID = 1L;
  8. FenetrePrincipale refFenetrePrincipale;
  9. //Constructeur
  10. Affichage(FenetrePrincipale refFenetrePrincipale){
  11.  this.refFenetrePrincipale = refFenetrePrincipale;
  12. }
  13. //Methodes
  14. public void paintComponent(Graphics g){
  15.  g.drawLine(0, 0, refFenetrePrincipale.parametre, refFenetrePrincipale.parametre);
  16. }
  17. }


 
La droite se trace bien comme désiré désormais mais j'ai pas l'impression que ce soit la facon la plus raffinée pour le faire.


Message édité par plzhelp le 18-07-2007 à 18:07:18

---------------
...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Probleme repaint et passage de variables

 

Sujets relatifs
tester des variables problème de compilation
[ASP.NET][Résolu] Problème envoi de mails[VBA] Probleme de requete
[résolu] récupérer 2 variables dans <option> du <select>[oracle PL/SQL] Problème de mis à jour
résoluProbleme de chargement de dll
Problème affichage FF / IE7Problème sur "€" et" "-" avec FPDF (génération PDF)
Plus de sujets relatifs à : Probleme repaint et passage de variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR