Interaction entre les fenêtres

  • Auteur de la discussion Harmo_
  • Date de début

Harmo_

Nouveau membre
Bonjour,

Comme l'indique le titre j'ai du mal avec les interactions entre les fenêtres.
Je m'explique : J'ai une Frame principale avec plusieurs Panels dont un dans lequel je souhaite dessiner. Cette fenêtre comporte également un bouton qui, lorsque que l'on clique dessus, ouvre une boîte de dialogue. Dans cette boîte de dialogue selon ce qu'il s'y passe il doit être possible ou non de dessiner dans la fenêtre principale.
Donc selon les actions dans la Dialog je voudrais par exemple pouvoir changer la valeur d'une variable définie dans la fenêtre principale (dans cet exemple un boolean, true si je peux dessiner, false sinon). Mais, par exemple, nommons cette variable boolean choix, pour pouvoir l'utiliser dans la Dialog je dois d'abord instancier la fenêtre principale, en fait faire ceci :
MonFrame mf = new MonFrame();
mf.choix=true;
Mais ça ne convient pas du tout.
D'abord je ne souhaite jamais fermer ma Frame. Ensuite, en faisant MonFrame mf = new MonFrame(); ma Frame s'initialise et donc s'il y avait déjà un dessin celui s'efface alors que je souhaite tous les garder.

J'espère avoir été claire...
Peut-on m'orienter svp ?
 

batchy

Grand Maître
Ou bien je n'ai pas compris, ou bien je pense que le problème pourrait être résolu en stockant une référence vers ta fenêtre principale dans ta boite de dialogue.
 

Harmo_

Nouveau membre


Que veux-tu dire par stocker une référence ?
 

batchy

Grand Maître
Avoir une variable dans ta classe de boite de dialogue, qui soit définie à ta fenêtre principale. Tu affecte cette variable dans le constructeur, ou dans une méthode de ton choix que ta fenêtre principale devrai appeler.

dans ton dialogue :
Code:
ClasseDeTaFenetrePrincipale fenetrePrincipale
void DefinirLaFenetrePrincipale(ClasseDeTaFenetrePrincipale principal) { fenetrePrincipale = principal }

dans ClasseDeTaFenetrePrincipale, quelque part,
Code:
fenetrePasPrincipale.DefinirLaFenetrePrincipale(this);
 

Harmo_

Nouveau membre
Ça ne convient pas. Ça me dit, dans la Frame : package does not exist / <identifier> expected / illegal starts of types
 

batchy

Grand Maître
Et comment je suis censé deviner quelle ligne pose problème ?

Poste la partie du code qui pose problème (seulement celle qui pose problème, hein !).
 

Harmo_

Nouveau membre
Celle qui équivaut à celle-ci fenetrePasPrincipale.DefinirLaFenetrePrincipale(this);
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 060
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut