Acceder à des objets d'une classe via une autre classe

Acceder à des objets d'une classe via une autre classe - Java - Programmation

Marsh Posté le 08-02-2006 à 00:05:50    

Bonsoir,  
 
J'ai un petit problème dans ma concéption du language objet, problème auquel, je me suis retrouvé plusieurs fois confronté sans succès...
Je souhaiterais savoir quelles sont les diverses méthodes, pour que lorsque l'on a 2 classes (eventuellement 2 JFrame), à partir d'une action sur l'une, on puisse engendrer une modification (dans mon cas un repaint()) sur un ou plusieurs composants de l'autre.  
 
J'avais pensé au static, mais ce n'est pas propre et en plus pas viable dans mon cas car à la fermeture de la fenêtre en question, suivi de sa réouverture, le paintComponent a été "sauvegardé" à travers ces variables.
 

Code :
  1. public class okAction implements java.awt.event.ActionListener {
  2.            public void actionPerformed(java.awt.event.ActionEvent e) {
  3.                if(horlConfigEnable==true) {
  4.                         if(highField.getText().equals("" ) || lowField.getText().equals("" ) || iniOff.getText().equals("" ) || benchField.getText().equals("" )
  5.                         || pasField.getText().equals("" )) {
  6.                             JOptionPane.showMessageDialog(null, "Toutes les données n'ont pas été inscrites", "Erreur", JOptionPane.ERROR_MESSAGE);
  7.                         }
  8.                         else { pas=Integer.parseInt(pasField.getText());
  9.                                dureeSimuInitiale=Integer.parseInt(benchField.getText());
  10.                                System.out.println(pas);
  11.                                System.out.println(dureeSimuInitiale);
  12.                                dispose();
  13.                              }
  14.                }
  15.                else {
  16.                         if(benchField.getText().equals("" ) || pasField.getText().equals("" )) {
  17.                             JOptionPane.showMessageDialog(null, "Toutes les données n'ont pas été inscrites", "Erreur", JOptionPane.ERROR_MESSAGE);   
  18.                         }
  19.                         else { pas=Integer.parseInt(pasField.getText())*Rule.TEMPS;
  20.                                dureeSimuInitiale=Integer.parseInt(benchField.getText())*Rule.TEMPS;
  21.                                //FenetreSimulation.columnView.repaint();  
  22.                                //FenetreSimulation.chronogramme.repaint();  
  23.                                dispose();
  24.                              }
  25.               }
  26.         }
  27.     }


 
Je me retrouve donc avec une classe FenetreWizard, dans laquelle j'ai ajouté un ActionListener au bouton OK de telle sorte à ce qu'il mette à jour la valeur de certaines variables et à l'issu de cette mise à jour, je voudrais repeindre deux objets qui sont dans ma classe principale FenetreSimulation. Et je ne sais pas comment m'y prendre...
Puis je le faire à partir de mon ActionListener du bouton OK ? ou bien dois je me concentrer sur la classe principale ou encore sur la classe des objets en question ?
Pour une méthode comme pour l'autre, je n'ai pas d'idée concrete alors si quelqu'un pourrait m'apporter sa lumière, je lui en serrai reconnaissant !  :jap:  
 
Merci d'avance et bonne soirée.

Reply

Marsh Posté le 08-02-2006 à 00:05:50   

Reply

Marsh Posté le 08-02-2006 à 20:23:47    

j'ai un peu survolé, et j'ai pas encore eu le courage de commencer à faire des interfaces graphiques mais il me semble que tu as juste a mettre
"nomdelobjetdelaclasseFenetreSimulation.Nomfonctiondanscetteclasse " dans ta fonction.
et la fonction devrait s'executer dynamiquement.
Si ta fonction ne se situe pas dans ta classe FenetreSimulation il te suffit juste de la recopier.
 
Je sais pas si c'est ce que tu demandes mais pour acceder à un objet TRUC d'une classe de nom Bêta avec un champs MACHIN et une primitive CHOSE, le tout à partir d'une classe de nom Alpha, pour peu que les classes soit dans le même repertoir/projet, tu tapes
 
Truc.MACHIN pour avoir la valeur du champ de cet objet.
OU
Truc.CHOSE() pour appeler la fonction CHOSE de Bêta à partir de Alpha, par exemple.
 
dans ton cas tu as surement mis FenetreSimulation f = new FenetreSimulation;
tu as juste as taper dans la fonction de ta classe FenetreWizzard  "f.repaint(); "
 
Mais en même temps j'ai pas commencer à utiliser javax... donc... je dits peut être n'importe quoi.


Message édité par Valkien le 08-02-2006 à 23:18:51
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed