[Java] Inserer un image dans un Jlabe !!

Bonjour,

Je sais que cette question a déjà été souvent posé , désolé a ce propos.

Bon , j'ai suivi beaucoup de méthode que j'ai vu sur le web sans pour toujours arriver a un bon résultat , donc j'ai décidé de poster pour de l'aide.

Voici une parti de mon code , en gros c'était un exercice d'école , mais je désire maintenant lui ajouter une image en background. J'ai aucune erreur a l'écran c'est juste quand je l'exécute que ça bloque. Si vous voyez pourquoi ça fonctionne pas , éclairez ma lanterne s.v.p :)

 public class Partie2 extends JFrame implements ActionListener, MouseListener, DocumentListener {
        private JButton btnButton;
        private Container contenant;
        private JLabel lblLabel;
        private JTextField txtTexte;
        private JLabel lblLabel1;
        

        public Partie2(Point position, String titre){
            this.setLocation(position);
            this.setSize(1024,780);
            this.setTitle(titre);
            this.setResizable(false);
            this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);            
            
            lblLabel1 = new JLabel(new ImageIcon("C:\fallout.jpg"));
            contenant.add(lblLabel1);
            
            contenant = this.getContentPane();
            contenant.setLayout(null);
            
            btnButton = new JButton("Copier");
            contenant.add(btnButton);
            btnButton.setBounds(400,200,75,75);
            
            lblLabel= new JLabel("Ceci est l'étiquette");
            contenant.add(lblLabel);
            lblLabel.setBounds(400,300,200,20);            
          
            txtTexte = new JTextField("Ceci est le champ de texte");
            contenant.add(txtTexte);
            txtTexte.setBounds(400,350,200,20);

            btnButton.addActionListener(this);
            txtTexte.getDocument().addDocumentListener(this);
            
            
            this.setVisible(true);
        }


Merci
Configuration: Windows XP
Firefox 3.0.6

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. salut, tout d'abord, je serais toi, je mettrais tous tes fichiers(images comprises) dans un même dossier (avec des sous dossiers par exemple), puis dans le constructeur de tes labels, e mettrai des chemins relatifs.
    Je m'explique : si tu essaies d'exécuter l'application sur un autre pc, les adresses auront changées.
    Exemples de chemin relatif :
    - "./image.jpeg" : si la photo est dans le même dossier que ton .class
    - sinon pour remonter au dossier parent, il faut utiliser".."
    exemple: *repertoire
    * sous_repertoire1
    * sous_repertoire2
    si ton .class est dans "sous_repertoire1" et tes images dans "sous_repertoire2", voici le chemin à mettre dans ton constructeur : "../sous_repertoire2" : en gros tu remontes au dossier parent, et tu choisis celui que tu veux (tu peux aussi faire "../../../repertoireX"

    je sais pas si ça va completement résoudre ton probeleme, mais ça va éviter certaines erreures
    1. Salut

      J'ai copier mon image a la même place que mon .class et j'ai ensuite modifier mon code pour qu'il ressemble a ca.

      ImageIcon image = new ImageIcon(Toolkit.getDefaultToolkit().getImage("./fallout.jpg"));

      et ca me donne toujour cette erreur quand je compile.

      Exception in thread "main" java.lang.NullPointerException
      at cegep.Partie2.<init>(Partie2.java:35)
      at cegep.Partie2.main(Partie2.java:74)
      1. euh ... tu peux me dire à quoi correspondent les lignes que te donne le compilo stp ?
        1. at cegep.outaouais.Partie2.<init>(Partie2.java:35)

          se rapporte a
          lblLabel1.setPreferredSize(new Dimension(image.getIconWidth(), image.getIconHeight()));

          et
          at cegep.outaouais.Partie2.main(Partie2.java:74)

          se rapporte a
          new Partie2(new Point(300,400),"Fenetre");