-
Masquer un Component
Bonjour,
Sur une JFrame, j'ai un JTable, 3 JTextfield et 1 combobox regroupés, non loins l'un de l'autre.
Je souhaiterais les masquer, non pas avec un setVisible (car ma JTable a un modèle auquel j'ajoute/supprime des lignes et lorsque je fais un setVisible true ou false dessus j'ai un comportement très farfelu de la JTable.
Je souhaiterais masquer ce groupement avec par exemple un enorme bouton, ou bien une image.
Est-ce possible ?
Je sais qu'il est possible de créer une 2e JFrame et de la positionner dessus mais quand je vais redimensionner ma 1ere JFrame il serait possible que la 2e (qui cache mes composants) ne soit plus positionnée correctement.)
Merci
-
Bah tu gardes une référence sur ton champ dans ta classe, et tu fais du remove/add au niveau du conteneur suivant le besoin (suivi d'un revalidate bien sûr).
-
Bonjour,
une solution possible serait de contrôler l'emplacement des composants en fixant leur coordonnées grâce à setBounds().
Ceci vous permettrait de poser à une coordonnées précise un JLabel opaque de la couleur de fond de votre fenêtre.
Il faudrait le placer de façon à ce qu'il recouvre les dimensions des autre composants, et l'ajouter en dernier dans la série de commande maFenetre.add( Composant 1 );... afin qu'il se place au-dessus des autres composants.
Ensuite une simple commande labelRecrouvrement.setVisible( false / true ); laisserait apparaitre ou masquerait les composants du dessous.
Le seul problème serait que vous n'auriez pas la gestion automatique de l'emplacement des composants, en cas de redimensionnement de la fenêtre... mais est-ce vraiment un problème ?
-
une autre solution possible serait de contrôler l'emplacement des composants en fixant leur coordonnées grâce à setBounds()
le moment venu, tu les places à l'extérieur de l'écran, x < 0 ou x > largeur de l'écran ou y > hauteur de l'écran ou y < 0.
ensuite tu les remets à leur emplacement initial...
ou tu leur donnes une largeur (ou hauteur) de zéro...
ou...
bonne chance !