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

AWT/Swing Java Discussion :

probl avec swing, tuto pas tres clair


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut probl avec swing, tuto pas tres clair
    Bonjour,
    j'apprend swing avec un tuto et je n'arrive pas a comprendre les informations donnees pour ecrire un petit edit. de texte avec une JToolBar.

    Je donne en suivant mes deux class et le message d'erreur obtenu.
    Il faut dire aussi que j'apprend en meme temp a travaille avec eclipse.
    Mais le probleme ne semble pas venir de la car j'ai aussi pose la question sur ce forum et apres plus de 50 lectures personne n'a pu m'ecrire quoi que ce soit.

    Les classs:

    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
     
    package test;
    import javax.swing.*;
    import java.awt.*;
    import outils.ChargeurRessource;
     
    class EditeurText {
     
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		JToolBar outils = new JToolBar();
    		ChargeurRessource chargeur = new ChargeurRessource ("/toolBarButtonGraphics/general/");
    		outils.add(new JButton(chargeur.getIcon("New16.gif")));
     
    		outils.addSeparator();
    		outils.add(new JButton(chargeur.getIcon("Cut16.gif")));
    		outils.add(new JButton(chargeur.getIcon("Copy16.gif")));
    		outils.add(new JButton(chargeur.getIcon("Paste16.gif")));
     
    		JFrame fenetreEdit = new JFrame(" Editeur ");
    		Container panneauEdit = fenetreEdit.getContentPane();
    		panneauEdit.setLayout(new BorderLayout(3, 3));
     
    		panneauEdit.add(outils, BorderLayout.NORTH);
    		panneauEdit.add(new JScrollPane(new JTextArea(10, 50)), BorderLayout.CENTER);
     
    		JLabel etat = new JLabel (" Application demarree ");
    		etat.setBorder(BorderFactory.createLoweredBevelBorder());
    		panneauEdit.add(etat, BorderLayout.SOUTH);
     
    		fenetreEdit.pack();
    		fenetreEdit.show();
    	}
    }
    le deuxieme:
    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
     
    package outils;
    import javax.swing.ImageIcon;
     
    public class ChargeurRessource {
     
    	private String base;
     
    	public ChargeurRessource(String base){
    		this.base = base;
    	}
     
    	public ImageIcon getIcon(String icon){
    		Class classe = getClass();
    		return new ImageIcon (classe.getResource(this.base + icon));
    	}
    }
    Avec eclipse je n'ai pas d'erreur a la compilation mais par contre quand j'execute le code j'ai ce message:

    Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at outils.ChargeurRessource.getIcon(ChargeurRessource.java:14)
    at test.EditeurText.main(EditeurText.java:17)
    Mon probleme est que je n'arrive pas a comprendre ce que le tuto veut me dire avec le paragraphe suivant:
    Les image nescessaire pour la JToolBar sont contenu dans le fichier jlfgr-1_0.jar que j'ai telecharge.
    Lors de l'execution la JVM cherche les icones utilisees dans son classpath en laissant a l'utilisateur deux possibilites.
    Je me concentre ici sur la premiere

    1)Extraire les images du fichier cite dans le sous-dossier classes du dossier de developpement.
    Quesque l'on entend par "sous-dossier classes" ici, est-ce que cela est le nom du projet?
    Comment est indique le classpath?
    Ensuite est-ce que l'on doit faire un import avec un nom de class. Je ne comprend pas comment cela marche.
    Je travaille sous W2k et mon tuto parle d'un fichier que je ne trouve nullpart EditeurText.bat ou devrai figurer l'une ou l'autre des instructions

    java -classpath ..\classes;..\lib\jlfgr-1_0.jar exercices.test.EditeurText

    Je ne sais pas ou donner cette instruction.
    Est-ce que quelqu'un peut m'aider???

    marc_3

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Etes-vous sûr que l'image est bien stockée dans le JAR ?

    voici ce que j'utilise pour charger une image depuis un jar

    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
       /********************************************
       *  Load an image from the current JAR file  *
       ********************************************/
       private Image loadImage(String imageName)
       {
         URL imageURL = null;
         boolean loadSuccess = false;
         Image img = null ;
     
         imageURL = getClass().getResource(imageName);
         if (imageURL != null)
         {
           try
           {
             img = Toolkit.getDefaultToolkit().getImage(imageURL);
             loadSuccess = true;
           }
           catch (Exception ilex)
           {
             log("Error loading image from JAR: " + ilex.toString());
           }
         }
         else
         {
           log("Unable to find " + imageName + " in JAR");
         }
         return img ;
       }
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    merci pour la reponse,
    oui je suis sur que l'image ce trouve bien dans le .jar car j'ai aussi essaye une autre variante d'utilisation et j'ai dans ma structure de package la librairie jlfgr-1_0.jar au complet.

    la structure est comme ca:
    nomProjet: exercices
    Exercices contient les packages suivants:
    nomPackage:
    default
    outils
    test
    JRESystemLibrary[jre1.5.0_05]
    jlfgr-1_0.jar -C:\Documents and Settings\Marc\workspace\JLFGR
    ou je peux trouver le sous package toolBarButtonGraphics.general
    (je dis sous package parsque j'ai la meme icone pour cela mais en blanc)
    et dans ce sous package decompresse j'ai les icones que je veux utiliser, cad New16.gif, Cut16.gif, Copy16.gif, Paste16.gif.

    NB jlfgr-1_0.jar -C:\Documents and Settings\Marc\workspace\JLFGR, est represente avec l'icone de librairie


    Je crois donc avoir un probleme pour donner le chemin.

    d'avance merci

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    si l'image est dans la racine du JAR, alors /nom_image suffit.
    s'il y a une arborescence de répertoires, il faut l'indiquer
    /rep_image/nom_image
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Le probleme est que les images sont dans un JAR *different* donc ca pose des problemes avec les ClassLoader.

    Marc_3 : Decompresse simplement le JAR dans le dossier qui contient ton code source. Si par exemple ton code source est dans C:\Projets\MonProjet\src (et tes packages sont donc dans src\), il faut decompresser le JAR dans C:\Projets\MonProjet\src. Dans Eclipse n'oublie pas de cliquer sur ton projet et de presser F5 pour le forcer a trouver les nouveaux fichiers.

    Note au passage : n'utilisez pas Toolkit.getDefaultToolkit().getImage(imageURL); mais ImageIO.read(imageURL)
    Romain Guy
    Android - Mon livre - Mon blog

  6. #6
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    j'ai essaye avec les framents de code suivant:

    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
     
    D'abord celui-ci
    		JToolBar outils = new JToolBar();
    		ChargeurRessource chargeur = new ChargeurRessource ("/toolBarButtonGraphics/general/");
    		outils.add(new JButton(chargeur.getIcon("/New16.gif")));
     
    		outils.addSeparator();
    		outils.add(new JButton(chargeur.getIcon("/Cut16.gif")));
    		outils.add(new JButton(chargeur.getIcon("/Copy16.gif")));
    		outils.add(new JButton(chargeur.getIcon("/Paste16.gif")));
     
    		JFrame fenetreEdit = new JFrame(" Editeur ");
    		Container panneauEdit = fenetreEdit.getContentPane();
    		panneauEdit.setLayout(new BorderLayout(3, 3));
     
    		panneauEdit.add(outils, BorderLayout.NORTH);
     
    Avec lequel tous plante sans message d'erreur
     
     
    Ensuite avec cela
     
    JToolBar outils = new JToolBar();
    		ChargeurRessource chargeur = new ChargeurRessource ("/toolBarButtonGraphics/general/");
    		outils.add(new JButton(chargeur.getIcon("/toolBarButtonGraphics/general/New16.gif")));
     
    		outils.addSeparator();
    		outils.add(new JButton(chargeur.getIcon("/toolBarButtonGraphics/general/Cut16.gif")));
    		outils.add(new JButton(chargeur.getIcon("/toolBarButtonGraphics/general/Copy16.gif")));
    		outils.add(new JButton(chargeur.getIcon("/toolBarButtonGraphics/general/Paste16.gif")));
     
    ou je retrouve le message d'erreur initial cite plus haut

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Decompresse le contenu du JAR dans ton repertoire contenant le code source comme je l'ai dit precedemment.
    Romain Guy
    Android - Mon livre - Mon blog

  8. #8
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    le message precedent etait pour SheikYerbouti.
    pardon je n'ai pas ete asser rapide avec la reponse
    ici je viens de faire ce que gfx a dit

    L'adresse ou j'ai sauve mon .jar est
    C:\Documents and Settings\Marc\workspace\exercices\jlfgr-1_0

    La nouvelle structure des package est comme cela


    nomProjet: exercices
    Exercices contient les packages suivants:
    nomPackage:
    default
    outils
    test
    JRESystemLibrary[jre1.5.0_05]
    jlfgr-1_0.jar -C:\Documents and Settings\Marc\workspace\JLFGR

    et ici un nouveau folder crer apres appel de la la fonc F5_eclipse
    qui contient un .jar nommé jlfgr-1_0.jar

    par contre cela plante toujours

  9. #9
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    *Decompresse* le JAR dans le dossier contenant tes fichiers source. Je veux bien etre plus clair mais je ne peux pas la.
    Romain Guy
    Android - Mon livre - Mon blog

  10. #10
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    pardon je n'ai pas donne le nom du folder: jlfgr-1_0

  11. #11
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Regarde les chemins que tu utilises pour tes images. Par exemple : /toolBarButtonGraphics/general/

    Cela signifie que tu dois decompresser le JAR de maniere a avoir, au meme niveau que les package de ton code source, un dossier appele toolBarButtonGraphics.
    Romain Guy
    Android - Mon livre - Mon blog

  12. #12
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut

    avec un peu de chance c'est cela que je ne comprend pas ou confond avec quelque chose d'autre.
    je me fait l'effet d'un debile mental en ce moment.

    Les fichiers sources sont les fichiers avec ext .java encore non transformes en bytecode avec ext .class.
    Ils repartis dans mes packages qui sont tous dans le dossier exercices.

    Bon voila j'ai donc essaye de decompresser jlfgr-1_0 dans le dossier suivant:
    C:\Documents and Settings\Marc\workspace\exercices

  13. #13
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    a force de faire n'importe quoi j'ai tout casse il faut que je reprenne tous ce soir
    merci pour l'aide

    marc_3

  14. #14
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Bon voila ca marche cette fois, je suis content je vous dit pas.

    La solution est bien ce que gfx a ecrit.

    merci a tous encore une fois

    marc_3

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

Discussions similaires

  1. singleton pas tres clair
    Par horkets dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 30/07/2009, 22h01
  2. Bugzilla : restrictions pas tres clair.
    Par manuds dans le forum Test
    Réponses: 2
    Dernier message: 06/02/2009, 11h02
  3. Réponses: 15
    Dernier message: 20/03/2007, 18h16
  4. Expression reguliere pas tres claire
    Par Krispy dans le forum Linux
    Réponses: 4
    Dernier message: 07/04/2006, 16h42
  5. [Dates] Pb avec dates, aides pas claires en fait :(
    Par zax-tfh dans le forum Langage
    Réponses: 4
    Dernier message: 10/09/2005, 13h55

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