Mette un JComponent au premier plan

Mette un JComponent au premier plan - Java - Programmation

Marsh Posté le 06-09-2005 à 10:06:22    

Bonjour à tous,
 
Je jongle avec des zones de saisie (des JComponents) pour les afficher ou non (avec la methode setVisible(true/false)).
 
Mon problème : ces zones doivent s'afficher sur d'autres zones en les écrasant. J'ai donc besoin de les mettre au premier plan  
                      HORS elles restent en arrière plan.
 
                      Je ne trouve pas de methode du genre toBack()/toFront() comme celà existe pour les composants Window.
 
Si mon bla-bla est compréhensible, est-ce que vous avez un tuyau à me donner pour m'en sortir !

Reply

Marsh Posté le 06-09-2005 à 10:06:22   

Reply

Marsh Posté le 06-09-2005 à 12:23:03    

T'as assayé en retirant/ajoutant tes composants de ton panel plutot que de faire du setVisible(true/false) ?

Reply

Marsh Posté le 06-09-2005 à 13:28:28    

J'ai essayé d'ajouter mon composant (JList pour le cas présent) avec la fonction JPanel.add(ma liste) suivie de validate().
 
C'est pas top; l'affichage de ma liste est en partie tronqé et lorsque  je clicke sur ma liste c'est la zone d'arrière plan qui revient au premier plan.
 

Reply

Marsh Posté le 06-09-2005 à 15:22:45    

kels sont tes composants?

Reply

Marsh Posté le 06-09-2005 à 17:47:16    

J'ai une série de zones de texte (JTextField) avec au bout de chacune une zone bouton (JBoutton). Lorsque je clique sur le bouton je fais apparaitre au premier plan (donc au dessus de mes zones de texte) une zone liste (JList avec un ScrollPane).
 
En fait s'est pour imiter les combobox qui ne répondent pas tout à fait à mes besoins (actionListener est possible sur une combobox MAIS pas KeyListener !!).

Reply

Marsh Posté le 07-09-2005 à 08:26:37    

Lorsque tu essais d'ajouter ton composant ( JList ) au JPanel, as-tu bien retiré ton JTextField via JPanel.remove( JTextField ) ?
Remarque : après avoir fait ces ajouts/suppressions, je ferais un "LayoutManager.pack()" pour recalculer la valeur ( taille et location )des nouveaux composants visibles.


Message édité par Profil supprimé le 07-09-2005 à 08:27:16
Reply

Marsh Posté le 07-09-2005 à 09:14:10    

Justement je ne souhaite pas supprimer les zones en arrière plan puisque je suis en fait sur un écran de saisi d'informations concernant un livre (titre, auteur, editeur, etc...) pour ensuite alimenter via du sql une base Acces.
 
Finalement, je vais changer d'optique de programation en mettant ma JList dans un JDialog. Ainsi mon problème de superposition devrait être résolu.
 
Merci à tous.

Reply

Marsh Posté le 07-09-2005 à 09:47:40    

Petite précision : il ne s'agit pas de supprimer le composant ( vers le GC de la machine virtuelle ) mais de le retirer du JPanel. Une référence à ce composant devra être déclaré en variable de classe de manière à pouvoir y accéder par la suite ( pour le réintégrer au JPanel par exemple ).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed