> ....Il suffit de te cr�er un panneau qui h�rite de JPanel
> et non pas de JComponent...
Je persiste et signe. D�river de JComponent suffit dans les cas simples :
import javax.swing.*;
import java.awt.*;
public class MyComp extends JComponent {
JLabel myLabel = new JLabel("Texte : ");
JTextField myTextField = new JTextField(8);
public MyComp() {
this.setLayout(new BorderLayout());
this.add(myLabel, BorderLayout.WEST);
this.add(myTextField, BorderLayout.CENTER);
}
}
A+
--------------------------------------------------------------------
Erik Mazoyer, Chef de projet
HyperOffice
6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
T�l. 01 41 96 96 76
Fax 01 41 96 96 77
M�l [EMAIL PROTECTED]
-----Message d'origine-----
De : Herve AGNOUX [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 10 f�vrier 2003 13:58
� : [EMAIL PROTECTED]
Objet : Re: Creation de composant
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