[Swing] Information sur des enchainements de fenêtres
kokojavafr
Messages postés23Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention12 septembre 2005
-
27 juil. 2005 à 16:56
cs_tigroux
Messages postés105Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention22 octobre 2008
-
28 juil. 2005 à 11:41
(Re)Bonjour,
je suis en train de faire une ihm pour un projet en ce moment.
Je dois ouvrir de nouvelle fenêtres qd je clique sur certains boutons.
Pour le moment, lorsque je clique sur le bouton en question, je met
dans la fonction associé au click de bouton un
ihmLaFenetreQueJeVeux.main(null) ..
Cest vachement crade je trouve ...
Mais vu que c est juste une ihm pour le moment, je peux tout à fait laisser ca comme ca.
Cependant, il va falloir que je code le projet associé, et j aimerais
savoir comment faire pour passer "proprement" d'une fenêtre à une
autre, sans faire appel à des main ..
Voila, je pense que c est assez simple, mais je vous pose tout de même
la question, n'ayant pas trouvé de solutions pour le moment.
sachant que : public class ihmAjoutProfession extends javax.swing.JFrame
{
.................
}
Cependant, au sein d'une classe, un this.show(false) marche parfaitement bien pour arreter l'affichage de la classe.
Autre question: L'appel à la méthode entraine t elle directement la
libération de la mémoire utilisée par cette frame (java ayant un
garbage collector) dans le cas ou il lui dit d'arrêter d'afficher cette
frame?
cs_tigroux
Messages postés105Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention22 octobre 200816 27 juil. 2005 à 18:08
Alors depuis java 1.4 je crois tu ne dois plus faire de this.show(), mais plutot du this.dispose(), ce qui libère la memoire. Sinon tu dois faire pour masqeur la fenetre this.serVisible(true ou false).
Pour ton erreur en fait ton objet ihmAjoutProfession doit être definit en static dans ta méthode, ce qui n'ai pas autoriser. Si tu souhaite laisser cela en static créer une fonction du style afficheToi dans ihmAjoutProfession tu la mets en static . Et dedans tu fais this.show()
Comme ca je pense que ca devrait fonctionner
Vous n’avez pas trouvé la réponse que vous recherchez ?
ihmAjoutProfession tmp = new ihmAjoutProfession();
tmp.setTitle("Pervilla: Ajouter une profession");
tmp.setSize(200,130);
tmp.show();
}
Ce qui m'amène à un autre probleme ..
Dans la fenêtre ihmAjoutProfession, j'ai une méthode d'ajout d'une
profession qui doit modifier une JComboBox dans ma fenetre ihmAccueil.
J'utilise un singleton pour avoir ma liste de choix possible dans ma
JComboBox, que je rempli au depart en parsant un fichier de sauvegarde.
Lorsque je clique sur le bouton ajouter de la fenetre
ihmAjoutProfession, j'aimerais que ma JComboBox de la fenetre
ihmAccueil se mette à jour en prenant en compte ce que j ai rajouté.
Voici le code en question :
public class ihmAccueil extends javax.swing.JFrame
{
....
public void updateBoxNomMetier(String toAdd)
{
System.out.println("add :" + toAdd);
BoxNomMetier.addItem(toAdd);
}
}
public class ihmAjoutProfession extends javax.swing.JFrame
{
..
}
Je n'arrive pas à acceder depuis la classe ihmAjoutProfession à la méthode updateBoxNomMeter de la class ihmAccueil.
J'ai modifié le extends de ihmAjoutProfession en le remplacant par un
extends ihmAccueil, et en utilisant super.updateBoxNomMetier()
Dans ma fenetre ihmAjoutProfession, je retrouve maintenant les menu du
haut (du genre fichier, etc .. ) de ihmAccueil, ce que je ne veux pas
(mais c est normal, vu qu'elle hérite de ihmAccueil), et lors de
l'ajout, il ne se passe rien dans la fenetre ihmAccueil (bien qu'un
getItemCount() en début et en fin de ma fonction update m'indique bien
que le nombre d'item a augmenté)
J'espère que mon problème est pas trop mal expliqué ...
cs_tigroux
Messages postés105Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention22 octobre 200816 28 juil. 2005 à 11:41
Ben sinon tu mets un modificateur en static dans ton ihmAccueil et qui lui modifira le comboBox. Et tu l'appelle depuis l'ecterieur avec ihmAccueil.le_nom_de_ton__modif