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 :

repaint qui marche pas


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 46
    Points
    46
    Par défaut repaint qui marche pas
    Bonjour !!

    Voila j'essaie de développer en java un jeu d'échecs...
    Pour résumer, j'ai une JFrame qui contient un JPanel, qui est le plateau.

    Sur ce JPanel, j'affiche une série de 8*8 panels, les cases (classe Carreau).
    Et sur chaque case j'essaie d'afficher une image qui est dans un répertoire.

    Ci-dessous le code, je précise que l'appli vient d'etre commencée, donc bien sur c'est de l'ordre du test...

    Je précise aussi que j'ai enlevé des parties du code pour que ce soit plus clair..


    Consttructeur classe Plateau :
    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
     
    public Plateau (Dimension taille)
    	{
    		super();
     
    		GridLayout grid = new GridLayout(8,8);
    		this.setLayout(grid);
     
    		Color currentColor = Color.BLACK;
    		for (int i=0; i<8; i++)
    		{
    			for (int j=0; j<8; j++) {
    			 	Carreau carreau = new Carreau(currentColor, i, j);
    			 	add(carreau);
    			 }
    	       }
     
    		setVisible(true);
    	}
    POur la case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public Carreau (Color couleur, int x, int y)
    	{
    		super();
     
    		Piece piece = new Piece (Color.BLACK, "pionNoir.jpg");
    		add(piece);
     
    		piece.repaint();
     
    	}
    et enfin la case Piece :

    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
     
    public Piece (Color couleur, String imagePiece) 
    	{
    		this.couleur = couleur;
     
    		Toolkit toolkit = Toolkit.getDefaultToolkit();
    		image = toolkit.getImage(imagePiece);
    		prepareImage(image, this);
     
    		this.setVisible(true);
    	}
     
    	public void paint(Graphics g)
           {
     
    		g.drawImage(image, 0, 0, this);
     
          }
    Voila au final mon probleme : Aucune image ne s'affiche...
    Merci d'avance !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 46
    Points
    46
    Par défaut
    J'ai essayé une classe sur le web qui fait d'une image un JPanel, et le createur dit qu'elle fonctionne nikel.

    Je charge l'image ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File file = new File("E:\\devJava\\Echecs\\images\\cavalierBlanc.jpg");

    Mais une IOException se lance avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    image = ImageIO.read(fileImg);

    Kezako ?

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Le fichier ne peut pas être lu apparemment. Soit il est corrompu, soit il n'existe pas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Verifie le chemin, je n'ai pas l'habitude d'utiliser de tels chemins mais le E:\\ me parait bizare...

    Pour plus d'info sur l'écriture du chemin : http://java.sun.com/j2se/1.4.2/docs/...a/io/File.html

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 46
    Points
    46
    Par défaut
    Au niveau du chemin, j'ai temporairement réglé le problème en mettant un chemin relatif... Cad foutre l'image directement dans le workspace.

    Donc maintenant j'arrive à afficher l'image, sachant que celle-ci est associée à un Jpanel...

    PAr contre, encore un problème que je n'arrive pas à régler :
    Je rappelle : Deux classes Plateau.java et Carreau.java, étandant toutes deux Jpanel.

    Lorsque je crée l'objet Piece représentant mon image, que je fais un add sur Plateau directement, elle s'affiche.
    Par contre, lorsque c'est Carreau qui add mon image, sachant que Carreau est lui-meme "addé" par Plateau, il m'affiche un ptit rectangle à la place de mon image ...

    En clair, est ce que mettre un Jpanel sur un Jpanel lui même sur autre Jpanel, ca ne perturbe pas Java ?

Discussions similaires

  1. script qui marche pas...
    Par jpg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2004, 15h19
  2. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 18h50
  3. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 16h59
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 19h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 14h23

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