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

avec Java Discussion :

Ou est Charl.. l'erreur?


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut Ou est Charl.. l'erreur?
    Bonjour à tous!
    Je me casse la tête depuis un bon moment sur une classe qui me retourne une erreur (lors de la compilation) et pas moyen de trouver le problème. D'ailleurs, eclipse semble ne pas trouver non plus.

    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
    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.io.IOException;
    import java.net.URL;
     
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
     
     
    public class ImageShow extends JPanel{
     
    	private URL lien;
    	private boolean visible;
    	private int pixel[] = new int[20];
    	private Color couleur[] = new Color[20];
    	private Image image;
    	private Image img;
     
    	public ImageShow() throws IOException
    	{
    		lien = getClass().getResource("/np.jpg");
    		image = ImageIO.read(lien);
    		pixel[0] = 5;
    		couleur[0] = Color.BLACK;
    		visible = false;
    		painting();
    	}
     
    	public void painting()
    	{
    		Graphics2D graphics = (Graphics2D) img.getGraphics();
    			graphics.setClip(0, 0, 130, 100);
    			graphics.drawImage(image, 0, 0, null);
    			paint(graphics);
    	}
     
     
     
    }
    Voici la classe, et voici l'erreur:

    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
    IWAV0052E Invocation Target Exception creating ImageShowjava.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
    	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
    Caused by: java.lang.NullPointerException
    	at ImageShow.painting(ImageShow.java:35)
    	at ImageShow.<init>(ImageShow.java:28)
    	... 13 more
    Merci de bien vouloir m'aider!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut
    Bon, j'ai trouvé le pourquoi: graphics est null et ça me donne cette erreur.
    Mais pourquoi est il nul et comment y remédier.
    De plus, je n'ai pas l'impression que ça "paint" quelque chose, car lorsque je remplace img.getGraphics() par image.getGraphics(), ça me donne un JPanel vierge.

  3. #3
    Membre actif Avatar de Roy Miro
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 273
    Points : 290
    Points
    290
    Par défaut
    Ton attribut de classe n'est jamais initialisé d'où, je pense la différence de comportement.

    Tu peux poster le code qui utilise ta classe?

  4. #4
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    en en prenant image.getGraphics(), tu paint l'image sur elle même, pas très utile.

    en prenant img.getGraphics, tu déclenche une exception: img n'est initialisé nulle part dans ton code, donc vaut null.

    Pour dessiner dans le JPanel, ça se fait dans la méthode paintComponent(Graphics), que tu dois redéfinir. Voir les FAQ gui et les cours de developpez à ce sujet.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut
    Il n'y en a pas pour le moment, du moins très incomplet.
    Alors comment je puis-je faire pour "remplacer" cela?
    [EDIT] Arf, je pensais qu'il y avait une méthode alternative à paintComponent
    Je vais donc m'y résoudre, merci.

  6. #6
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Petite précision
    Bonjour,

    Si vous ne voulez pas redéssiner vous-même ce que déssine lui-même votre JPanel, mais simplement déssiner quelque chose en plus, il vous suffira de mettre en première ligne de code dans votre redéfinission de paintComponent(...) la ligne 'super.paintComponent(...), puis de déssiner 'par dessus' ce que vous voulez.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. c'est quoi cette erreur ?
    Par guitariste dans le forum C++
    Réponses: 4
    Dernier message: 26/12/2007, 20h42
  2. Filter et champ, ou est donc l'erreur
    Par x0249 dans le forum IHM
    Réponses: 1
    Dernier message: 23/05/2007, 06h21
  3. Afficher la ligne de code qui est tombée en erreur
    Par CAML dans le forum Framework .NET
    Réponses: 8
    Dernier message: 21/04/2007, 19h42
  4. Index n'est pas à jour (erreur d'execution)
    Par jenteldz47 dans le forum Bases de données
    Réponses: 7
    Dernier message: 17/03/2007, 18h00
  5. c'est quoi cette erreur??
    Par elekis dans le forum C++
    Réponses: 5
    Dernier message: 11/09/2005, 14h44

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