IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

inserer une image à gauche d'un JTextField


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 137
    Par défaut inserer une image à gauche d'un JTextField
    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)


  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    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.

  3. #3
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    Sous classe JTextField et surcharge paintComponent :
    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);
    }
    icone est un objet Icon.
    Où x et y sont les coordonnées où tu veux afficher l'icone.

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 137
    Par défaut
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      JTextField text=new JTextField();
                JLabel l=new JLabel(new ImageIcon("images\\omag\\user.png"));
                text.set ??
    pour visiwi :

    merci beaucoup ,ça marche bien ,toujours une réponse efficace.

    Comment je peut placer le curseur aprés l'image ?

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    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;
    	}

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 137
    Par défaut
    merci encore visiwi

    pour avoir un JLable avec image en peut faire aussi

    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");
    mais je peut pas inserer le JLabel dans un JTextField ,

    meme si j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     l.setLabelFor(text);
    pour ta solution pour le curseur ,ça marche pas maintenant ,le JTextField est desactivé je peut pas editer

    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;
    		}
     
     
      }

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    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);

  8. #8
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    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).

    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;
    			}
     
     
    	  }
    }
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inserer une image dans 1 JTextfield
    Par moutey dans le forum Composants
    Réponses: 5
    Dernier message: 18/04/2007, 01h26
  2. inserer une image dans un dbgrid delphi
    Par cello dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/02/2004, 19h51
  3. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 11h55
  4. [VBA-W] [Word] Insérer une image MSChart
    Par fredo1664 dans le forum VBA Word
    Réponses: 2
    Dernier message: 20/11/2002, 10h09
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo