Le Lundi 10 F�vrier 2003 13:25, Yannick Emeriaud a �crit :

> Bonjour,
>
> Je souhaiterais cr�� un composant graphique personnalis�.
>
> Par exemple un JTextField suivi d'une image sous forme de  JLabel.
> J'aimerais que lorsque ce composant s'affiche, on ait toujours le
> JTextfield puis l'image accoll�e (ceci ind�pendamment du layout). Comme
> si ce composant n'�tait qu'un.
> Je ne vois pas trop comment faire.
>

Il suffit de te cr�er un panneau qui h�rite de JPanel - et non pas de 
JComponent - dans lequel tu d�finis toi m�me le layout. En red�finissant la 
m�thode setLayout, tu peux empecher l'ext�rieur de modifier le layout, si tu 
veux.

> Ma premi�re id�e est de cr�er une classe comme ceci :
> -----------------------------------------
> class MonComposant extends JComponent{

Ici JPanel � la place de JComponent.


>     private JTextField nom;
>    private JLabel iconeNom=new JLabel("une_image");
>
>    // ... constructeurs ...
>

D�fini une m�thode "initialise" (par exemple) dans laquelle tu positionnes tes 
composants selon la disposition que tu voudras.

>     public void paint(Graphics g){
>          nom.paint(g);
>          iconeNom.paint(g);
>     }

Supprime cette horreur !

>
> Mais les deux "paint" ne me garantissent pas l'"union" des deux
> composants.
>
> Comment pourrais-je faire ?
>

Pour ton composant utilise un BoxLayout, un GridLayout ou un BorderLayout de 
fa�on tout � fait normale.


-- 
SARL diaam informatique - 04 50 77 12 60
Ingenierie, d�veloppements de syst�mes d'information
http://www.diaam-informatique.com


Répondre à