Bonjour ,
j'aimrai savoir comment inserer une image à gauche d'un JTextField ,
j'ai cherché un peu et j'ai trouvé l'utilisation JEditorPane
(émoticone)
![]()








Bonjour ,
j'aimrai savoir comment inserer une image à gauche d'un JTextField ,
j'ai cherché un peu et j'ai trouvé l'utilisation JEditorPane
(émoticone)
![]()
Si tu veux juste afficher une image fixe à coté d'un JTextField, le plus simple et d'utiliser un JLabel que tu place à coté du JTextField et où tu place une icône.
Salut,
Sous classe JTextField et surcharge paintComponent :
Où icone est un objet Icon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Override protected void paintComponent(final Graphics g) { super.paintComponent(g); icone.paintIcon(null, g, x, y); }
Où x et y sont les coordonnées où tu veux afficher l'icone.








merci beaucoup pour vos réponse :
pour tchize_ , c'est simple mais j'ai pas arrivé à le faire ,
comment je peut ajouter le Jlabel ou JTextField ?
j'ai fait :
pour visiwi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3JTextField text=new JTextField(); JLabel l=new JLabel(new ImageIcon("images\\omag\\user.png")); text.set ??
merci beaucoup ,ça marche bien ,toujours une réponse efficace.
Comment je peut placer le curseur aprés l'image ?
Pour le label, tu as une méthode setIcon (regarde la javadoc).
EDIT -> J'ai répondu trop vite je crois. Tel que l'a suggérer tchize_, il suffit de placer le JLabel juste à côté du JTextField avec le layout donc...
Pour le curseur dans le JTextField, il suffit (je pense) de modifier l'Insets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Override public Insets getInsets() { Insets i = super.getInsets(); i.left += icone.getIconWidth() + 2; return i; }








merci encore visiwi
pour avoir un JLable avec image en peut faire aussi
mais je peut pas inserer le JLabel dans un JTextField ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 JLabel l=new JLabel(new ImageIcon("images\\omag\\user.png")); // l.setIcon(new ImageIcon("images\\omag\\user.png");
meme si j'utilise :
pour ta solution pour le curseur ,ça marche pas maintenant ,le JTextField est desactivé je peut pas editer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 l.setLabelFor(text);
j'ai fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class textF extends JTextField{ Icon icone=new ImageIcon("images\\omag\\user.png"); protected void paintComponent(final Graphics g) { super.paintComponent(g); this.icone.paintIcon(null, g,0,0); } public Insets getInsets() { Insets i = super.getInsets(); i.left += icone.getIconWidth() + 10; return i; } }
le JLabel se met au sein du meme composant que ton JTextField:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 JPanel panel = .... // Le panel où tout va JLabel label = new JLabel(new ImageIcon(....)); JTextField textField = new JTextField(); panel.add(label); panel.add(textField);
Pour le textField cela ne vient pas du code que je t'ai donné (ça marche), mais d'autre chose (peut être que tu l'empêche d'être editable).
Pour le label l'idée de tchize_ était de mettre le label à gauche du TextField en le plaçant avec un layout, opération classique. Pas de le mettre dans le TextField, ce qui est d'ailleurs un non sens.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import java.awt.Graphics; import java.awt.Insets; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JTextField; public class Test extends JFrame { private MyJTextField tf = new MyJTextField(); public static void main(String[] args) { new Test(); } public Test() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(tf); pack(); setVisible(true); } public class MyJTextField extends JTextField{ Icon icone=new ImageIcon("icone.png"); protected void paintComponent(final Graphics g) { super.paintComponent(g); this.icone.paintIcon(null, g,0,0); } public Insets getInsets() { Insets i = super.getInsets(); i.left += icone.getIconWidth() + 10; return i; } } }
Partager