[JAVA] Bloquer une JFrame

Fermé
l'étudiant - 9 nov. 2007 à 23:12
 Demosthene - 8 mai 2008 à 12:47
Bonjour,

Je cherche un peu d'aide pour une programmation en Java.
Mon prog ouvre plusieurs fenetres. Quand je suis sur certaine, lorsque je clic sur un bouton je ferme la premiere et j'ouvre une nouvelle. Pour ca, il n'y a pas de soucis.
Sur certans clic, je fait afficher la nouvelle fenetre sans effacer l'ancienne.
Pour ca, il n'y a pas de soucis non plus.
Ce que je souhaite, c'est que lorsque la deuxieme fenetre est ouverte, je ne peux clicer sur les boutons de la premiere. Je souhaite la "griser" en quelque sorte comme un setEnabled pour les TexField par exemple.
J'ai bien reussi a tout griser justement avec plein de setEnabled mais ca fait bourrin comme méthode, de plus je ne sais pas comment les remettre a true quand je ferme la deuxieme fenetre.

Quelqu'un connait il une fonction ou methode qui me permetterais de fair ca???

Merci d'avance.
A voir également:

4 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
9 nov. 2007 à 23:19
Slt,
Je ne suis pas un programmaeur Java, mais je pense qu'il y a une solution:
1. cache la par la méthode Hide
2. Passe la comme un paramètre pour la création de la deuxième (comme ça tu peux même faire les true à setEnabled.
3. Juste avant de quitter jeaffiche la.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
12 nov. 2007 à 14:20
Sinon regarde du coté de mettre ta deuxieme fenetre comme "fenetre fille" de la premiere (internal window ?!).

Bon courage.
0
l'étudiant
13 nov. 2007 à 21:56
Bonjour,

Merci de votre aide.

J'ai reussi a fair ce que je voulais de differentess maniere.
J'ai dans un premier temps reussi en mettant tout les boutons et texte en setEnabled(false).
Je les déclarais dans public et static ca donnais par exemple : public static JButton MonBouton;
J'étais obliger de les déclarer comme ceci pour pouvoir fair un setEnabled(true) dans la deuxieme fentre quand je voulias fermer cette derniere.
Donc dans la methode ActionPerformed de la deuxieme fenetre je codais ce ceci:

DansL'exemple ma premiere fenetre s'appel Fen1.

if (e.getActionCommand().equals("ok"))
{
Fen1.Btn_Toto.setEnabled(ture); // Btn_Toto est un bouton de la premiere fenetre
etc etc pour tou les bouton et texte que j'avais mis a false lorsque j'ai ouvert ma deuxieme fenetre

this.dispose(); //pour femer la fenetre
}

Ce n'est peut etre pas super académique comme methode mais ca marche.

La deuxieme solution est de la mettre comme modal.
Au lieu de l'hériter d'une JFrame il faut l'hériter d'une JDialogue et le constructeur devient comme ceci:

public NewFen(Frame proprio)
{
super(proprio,"Ma nouvelle fenetre",true);
...
...
}

C'est quand même moins barbare que la premiere solution :-)
0
Salut,

J'ai eu le même besoin que toi, et j'ai trouvé un solution peut-être plus académique :

t'a fenetre fille extends JDialog :

public class FenFille extends JDialog {
        //le arg0 passé en paramètre est la fenêtre à bloqué, 
        //si tu passe null sa bloquera rien (et ce sera comme un JFrame).
	public FenConfig(Window arg0) {
		super(arg0);
		//ton code...
	}
}


JDialog est en Swing, ça hérite de java.awt.Dialog. tu doit donc pouvoir faire des chose semblable en awt.

Demosthene
0