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

Interfaces Graphiques en Java Discussion :

Problème avec mon fichier .jar chez NetBeans


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Par défaut Problème avec mon fichier .jar chez NetBeans
    Bonjour j'ai développé une petite application java en utilisant netbeans sauf que mon fichier.jar ne contient aucune de images qu'il y'a sur mon application. J'ai crée un dossier image à la racine du projet c'est à dire hors du package source (src). mon fichier .jar n'a d'image que si je copie le dossier image et que je le place dans le même dossier que celui qui contient mon fichier .jar y'a il une façon plus simpliste de faire de tel en sorte que le fichier .jar encapsule les images ? Dans ce cas, ou vais - je placer le dossier contenant les images?

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Oui les mettre dans un package de ton appli. (genre com.truc.machin.res.images), puis y accéder via lé méthode getResource de la classe Class (en général un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getClass().getResource("/com/truc/machin/res/images/monImage.png");
    marchera parfaitement pour récupérer l'URL à fournir à ImageIO.read ou au constructeur d'ImageIcon)

  3. #3
    Membre éclairé Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Par défaut
    Merci ca marche très bien sauf que j'ai quelque petit problème

    Vue que j'ai crée un package image dans mon package source, si j'écris par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public JMenuItem menu = new JMenuItem("Bonjour");
    et que dans mon constructeur j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menu.setIcon(new ImageIcon(getClass().getRessource("/image/menu.jpg")));
    ca passe sans problème mais si j'écris
    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
    public class Background extends JPanel {
     
    	    public void paintComponent(Graphics g){
    	            try {
    	                    Image img = ImageIO.read(new File(getClass().getRessource("/image/images.png"));
    	                     g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
    	            } catch (IOException e) {
    	                    // TODO Auto-generated catch block
    	                    e.printStackTrace();
    	            }
     
    	    }               
        }
    	  private JToolBar toolBar = new JToolBar();
    	  private JButton connecte = new JButton(new ImageIcon(getClass().getRessource("/image/connecte.jpg")));
    ca me retourne une erreur je n'arrive pas a resoudre le probleme

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File(getClass().getRessource("/image/images.png")
    On ne peux pas créer un file à partir d'une ressource. Une ressource dois toujours etre accédée soit directement par inputstream (getClass().getRessourceAsStream(.....)) soit via un objet URL getClass().getRessource(.....). La pluspart des api qui acceptent des file acceptent aussi des inputstream ou des URL. ImageIO ne fait pas exception à cette règle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image img = ImageIO.read(getClass().getRessource("/image/images.png"));

    PS: pour gagner du temps, quand vous postez un message sur le forum et que vous avez une erreur: indiquez le message d'erreur et si possible sa stacktrace complète.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    J'aurais tendance à dire que la dernière accolade devrait être après la déclaration des variables.

    Sinon c'est plutôt une mauvaise idée que de charger une Image dans la méthode paintComponent, cela aura pour effet de la ralentir énormément, et par là même, te donnera une interface graphique peu réactive.

    Il est donc amplement préférable de charger une seule fois l'image dans ton constructeur (voir même dans un Thread à part si l'on veut vraiment finasser).

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    Citation Envoyé par sinok Voir le message
    (voir même dans un Thread à part si l'on veut vraiment finasser).
    ou utiliser quand c'est possible un ImageIcon qui fait déjà ça.

  7. #7
    Membre éclairé Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Par défaut
    Si j'ai bien saisi je devrais donc écrire

    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
    public class Background extends JPanel {
     
    	    public void paintComponent(Graphics g){
    	            try {
    	                    Image img = ImageIO.read(getClass().getRessource("/image/images.png"));
    	                     g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
    	            } catch (IOException e) {
    	                    // TODO Auto-generated catch block
    	                    e.printStackTrace();
    	            }
     
    	    }               
        }
    	  private JToolBar toolBar = new JToolBar();
    	  private JButton connecte = new JButton(new ImageIcon("/image/connecte.jpg"));
    Sauf que s'il faut ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private JButton connecte = new JButton(new ImageIcon("/image/connecte.jpg"));
    ca ne donnera que si je package image est hors du package source
    dans le cas contraire celà renvoie une erreur.

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

Discussions similaires

  1. Problème avec mon fichier .CHM créé par HTML Help Workshop
    Par Magdix dans le forum Installation, Déploiement et Sécurité
    Réponses: 0
    Dernier message: 20/10/2008, 15h24
  2. Y a t'il un problème avec mon fichier xsl?
    Par missllyss dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/06/2008, 10h03
  3. Problème avec mon fichier header
    Par Kicker dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2008, 12h57
  4. Problème avec mon fichier d'entrées
    Par salseropom dans le forum C
    Réponses: 6
    Dernier message: 11/10/2007, 18h08
  5. Problème avec mon fichier CSS
    Par bobic dans le forum Apache
    Réponses: 1
    Dernier message: 30/12/2006, 00h48

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