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

  FORUM HardWare.fr
  Programmation
  Java

  [RESOLU]Accéder méthode ou objet autre Frame

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]Accéder méthode ou objet autre Frame

n°1985621
piero53
Posté le 19-04-2010 à 22:36:52  profilanswer
 

Bonjour,
 
J'ai ma jFrame principale qu'on va appeler jFrame1, et j'ouvre une nouvelle jFrame ( on appele jFrame2) grâce à un bouton.
 
Ce que je me demande c'est, comment puis-je accéder à des objets graphiques tels que les labels depuis ma jFrame2?
 
Aussi, comment puis-je utiliser une procédure présente dans ma jFrame1 depuis la jFrame2?
 
merci :)


Message édité par piero53 le 20-04-2010 à 16:33:53
mood
Publicité
Posté le 19-04-2010 à 22:36:52  profilanswer
 

n°1985753
Deamon
Posté le 20-04-2010 à 09:43:24  profilanswer
 

Il faut passer jFrame1 en paramètre du listener du bouton. Comme ça tu récupères la référence de jFrame1 dans jFrame2.

n°1985804
piero53
Posté le 20-04-2010 à 10:57:38  profilanswer
 

c'est-à-dire, lors de l'action du bouton pour ouvrir ma jFrame2 :
 

Code :
  1. new jFrame2(jFrame1).setVisible(true);


 
Cela ne fonctionne pas... peut-être y a-il autre chose à modifier du coté de la jFrame2?

n°1985815
Deamon
Posté le 20-04-2010 à 11:18:56  profilanswer
 

Oui par exemple, ça peut marcher.
Il faut alors que tu prennes dans le constructeur de jFrame2, jFrame1 que tu stockes pour pouvoir le réutiliser après.

n°1985822
piero53
Posté le 20-04-2010 à 11:26:30  profilanswer
 

ok mais comment stocker jFrame1 dans le constructeur de jFrame2? :)

n°1985824
Deamon
Posté le 20-04-2010 à 11:30:59  profilanswer
 

Grossièrement :
 

Code :
  1. A1 a1;
  2. A2(A1 a1){
  3. this.a1 = a1;
  4. }
  5. void fonction(){
  6. //fonction où tu utilises A1
  7. a1.truc();
  8. ...
  9. }

n°1985836
piero53
Posté le 20-04-2010 à 11:41:25  profilanswer
 

hum j'ai du mal à savoir ou mettre quoi...

 

j'ai d'un coté l'action du bouton pour ouvrir ma jFrame2 :

 
Code :
  1. private void jBtnAjouterActionPerformed(java.awt.event.ActionEvent evt) {                                           
  2.         new jFrame2().setVisible(true);
  3.     }
 

et de l'autre coté ma jFrame2 :

 
Code :
  1. public class jFrame2 extends javax.swing.JFrame {
  2. ...
  3. public jFrame2() {
  4.    initComponents();
  5. }
  6.     public static void main(String args[]) {
  7.         java.awt.EventQueue.invokeLater(new Runnable() {
  8.             public void run() {
  9.                 new jFrame2().setVisible(true);
  10.             }
  11.         });
  12.     }
 

maintenant reste à passer la référence de la jFrame1, mais ou ?


Message édité par piero53 le 20-04-2010 à 12:32:12
n°1985840
Deamon
Posté le 20-04-2010 à 11:47:47  profilanswer
 

Je comprends pas trop ton code ou du moins ce que tu me montres. T'as une classe JFrame2 à toi non ? Pourquoi tu me montres jAjout ?
 
Ta méthode jBtnAjouterActionPerformed elle est dans quelle classe ?

n°1985861
piero53
Posté le 20-04-2010 à 12:15:53  profilanswer
 

oups pardon, en fait jAjout correspond à jFrame2 (s'était pour simplifier l'explication).
 
Et la méthode jBtnAjouterActionPerformed est donc dans la classe de la jFrame1 forcément.

n°1985883
Deamon
Posté le 20-04-2010 à 12:45:41  profilanswer
 

Ok donc :

 
Code :
  1. private void jBtnAjouterActionPerformed(java.awt.event.ActionEvent evt) {                                           
  2.         new jFrame2(this).setVisible(true);
  3.     }
 


Code :
  1. public class jFrame2 extends javax.swing.JFrame {
  2. ...
  3. private jFrame1 jf1;
  4. public jFrame2(jFrame1 jf1) {
  5.    this.jf1 = jf1;
  6.    initComponents();
  7. }


Message édité par Deamon le 20-04-2010 à 12:46:32
mood
Publicité
Posté le 20-04-2010 à 12:45:41  profilanswer
 

n°1985900
piero53
Posté le 20-04-2010 à 13:20:17  profilanswer
 

ok j'ai bien mis ceci en place :)
 
j'arrive maintenant à accéder depuis la jFrame2 aux méthodes de la jFrame1 :)
 
par contre comment puis-je accéder aux objets tels que les labels ou les combobox? (je travaille avec netbeans)

n°1985921
Deamon
Posté le 20-04-2010 à 14:02:29  profilanswer
 

Tu peux mettre tes objets en membre de la classe par exemple pour les avoir accessible directement. Après je sais pas comment tu as créé ça.

n°1985965
piero53
Posté le 20-04-2010 à 15:31:46  profilanswer
 

Ok, de toute façon à partir du moment ou je peux accéder aux méthodes de la jFrame1 c'est bon.
 
Par contre, dans la code que tu m'a donné précédemment (et que j'ai appliqué), il fonctionne.
 
Cependant, pour cette partie du code restant de la jFrame2 :
 

Code :
  1. #     public static void main(String args[]) {
  2. #         java.awt.EventQueue.invokeLater(new Runnable() {
  3. #             public void run() {
  4. #                 new jFrame2().setVisible(true);
  5. #             }
  6. #         });


 
il me met  
 

Citation :

cannot find symbol
 
constructor jFrame2


 
Cela vient du fait qu'il faut lui mettre une paramètre a jFrame(ici) ?
 
j'ai pourtant bien essayé de mettre jFrame1, jFrame2 etc mais toujours cette erreur

n°1985971
Deamon
Posté le 20-04-2010 à 15:56:40  profilanswer
 

Je comprends pas ton main, tu lances jFrame2 mais normalement c'est pas le 1 qui doit appeler le 2 ?

n°1985972
piero53
Posté le 20-04-2010 à 16:02:57  profilanswer
 

si c'est bien le 1 qui appel le 2
 
cette partie 'main' de la jFrame2 se fait toute seule lorsque l'on créer une nouvelle jFrame avec netbeans

n°1985975
Deamon
Posté le 20-04-2010 à 16:12:36  profilanswer
 

Dans ce cas tu peux virer ce main si tu ne t'en sers pas.

n°1985985
piero53
Posté le 20-04-2010 à 16:33:05  profilanswer
 

ok je l'ai viré et cela fonctionne :)
 
merci beaucoup :)

n°2298797
dalila15
Posté le 05-04-2017 à 23:35:59  profilanswer
 

Deamon a écrit :

Je comprends pas ton main, tu lances jFrame2 mais normalement c'est pas le 1 qui doit appeler le 2 ?


Bonsoir,
 
S'il vous plait pour ce meme exemple comment je vais fermer la jframe2 lors de l'action d'une bouton qui se  trouve dans jframe2 aussi
mercii

n°2298817
dalila15
Posté le 06-04-2017 à 09:44:28  profilanswer
 

Salut s'il vous plait  ce meme exemple comment je vais fermer la jframe2 lors de l'action d'une bouton qui se  trouve dans jframe2 aussi  
mercii d'avance


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

  [RESOLU]Accéder méthode ou objet autre Frame

 

Sujets relatifs
[resolu] Probleme de syntaxe dans un UPDATEphp objet insertion base de donnée
Pb margin-top : 2 éléments côte-à-côte se chevauchent![RESOLU] mysqldump, php et dump vide :(
UserForm et Barre de progression [Résolu][résolu] Undefined index
[Résolu] Héritage de classe, récupérer attribut de la classe parentAccès dynamique à une classe pour appeler .... une méthode statique
[Résolu] Class et function 
Plus de sujets relatifs à : [RESOLU]Accéder méthode ou objet autre Frame



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR