Aller au contenu

JAVA : question sur les JInternalFrame etc


Sujets conseillés

Posté

Salut,

J'ai un problème pour priver l'accès à un JInternalFrame de niveau inférieur lorsqu'un JInternalFrame de niveau supérieur est "visible".

Imaginez : j'ai un JInternalFrame à un niveau (Layer) le plus bas (une fenetre de saisie). Quand je valide ma saisie, j'ouvre un JInternalFrame (une fenetre de résultats) à un niveau supérieur pour que la superposition soit gérée graphiquement au sein de mon JDesktopPane/JFrame.

=> Le problème est que je peux encore sélectionner la "fenetre de saisie" (JInternalFrame de layer inférieur) et je ne voudrais pas que ce soit possible, un peu comme une pop-up : il faudrait fermer la "fenetre de résultats" pour pouvoir interagir à nouveau avec la fenetre de saisie. Mais je ne veux pas utiliser de pop-up car c'est trop limité. Je ne veux pas non plus masquer la fenetre inférieure car je veux les voir toutes.

J'ai essayé d'ajouter un VetoableChangeListener, ça marche bien, je ne peux plus sélectionner la fenêtre inférieure, MAIS si je clique directement dans une zone de ma fenetre, malgré le Veto, je peux saisir des choses, utiliser les boutons etc (dans une fenêtre qui reste donc "inactive" grâce au veto)

J'ai bien pensé griser tous les éléments de ma fenêtre, mais c'est un peu bourrin comme code.

Si quelqu'un a une solution, je suis preneur.

Je cherche quelque chose du genre "setSelectable(false)" à appliquer sur le fenêtre inférieure qd la fenetre de niveau supérieur est affichée, mais évidemment, ça n'existe pas.

Merci

Posté

Salut DJK, je pense, mais je peux me tromper, que la solution passe par la méthode setEnabled(boolean);.

appelons tes deux fenetres, "fenetrePrincipale" et "fenetreSecondaire".

Au moment de l'affichage de ta fenêtre secondaire, tu appliques :

fenetrePrincipale.setEnabled(false);

Au moment de la fermeture de ta fenêtre secondaire, tu appel

fenetrePrincipale.setEnabled(true);

En espérant que ma solution soit la bonne (je n'ai pas eu le temps de me monter un petit exemple pour tester).

Tizel

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...