Bonjour,
dans mon programme, j'ai créé un Panel.
J'intègre ce panel dans une frame avec un :
this.getContentPane().add(MonPanel);
Je voudrais, à partir de mon panel, appeler une méthde de ma frame. Comment dois-je m'y prendre ???
Merci
Bonjour,
dans mon programme, j'ai créé un Panel.
J'intègre ce panel dans une frame avec un :
this.getContentPane().add(MonPanel);
Je voudrais, à partir de mon panel, appeler une méthde de ma frame. Comment dois-je m'y prendre ???
Merci
Bonjour, tu pourrais passer la JFrame en paramètre de ton constructeur du JPanel.
Mais d'un point de vue conception, ça me paraît être une erreur d'avoir à appeler une méthode de la JFrame dans un JPanel. Que fait cette méthode?
Oui, mais c'est pas très 'joli' ça. Il n'y a pas de méthode qui permet de savoir le 'contener' ???
En fait, j'ai un arbre dont une des méthodes liées à une branche permet de supprimer un enregistrement. La fonction delete appartient au JPanel, mais je voudrait fermer le JFrame qui contient le JPanel dès que l'enregistrement est supprimer et donc appeler le quit de la JFrame à partir du JPanel.
Peut-être que je m'y prend mal et que je devrait savoir comment fermer le Jpanel (et le Jframe qui le contient par la même occasion) ?
Ta fenêtre ne contient qu'un JPanel ?
Dans ce cas, mets la méthode delete au niveau de ta Frame![]()
Hé non, la frame peut contenir différent panel ... ça aurait été trop simple ;-)
Tu peux utiliser la méthode getParent().
Je remonte ce poste un peut vieillissant, car je m'interroge un peut .....
je debute en java et je me suis trouvé face au même problème.
Dans ce cas precis, on veut que le JPanel ferme la fenetre qui le contiens
le code suivant qui a été proposé par adiGuba repond a ce que l'on veux
Exemple1
mais pourquoi ne pas plus tot le diminuer en ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Window window = SwingUtilities.windowForComponent(panel); if (window instanceof JFrame) { JFrame frame = (JFrame) window; frame.setVisible(false); frame.dispose(); }
Exemple2
plus court et fonctionne aussi bien avec tous les objets qui hérite de prés ou de loins a java.awt.Window soit JFrame, JDialog, ect...
Code : Sélectionner tout - Visualiser dans une fenêtre à part SwingUtilities.windowForComponent(this).dispose();
dans mon code j'ai utilisé la méthode de l'exemple2, mais je préfert être sur que je ne suis pas dans l'erreur ....
il y a une raison particulière de procéder comme l'exemple1 ?
Merci![]()
Partager