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 :

Affichages d'images dans un tableau de JButton


Sujet :

Interfaces Graphiques en Java

  1. #21
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Points : 532
    Points
    532
    Par défaut
    Pour la 1ere, c'est répertoire qui est null. Il se passe quelque chose d'anormal ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File repertoire = new File(getAbsolutePath(event.getPath()));
    Pour la 2eme c'est files qui est null et c'est un param reçu. Avant de rentrer dans la boucle fais un controle :
    Ca doit être le cas si le répertoire est vide. Enfin je pense

  2. #22
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    J'ai beau faire tous les tests possibles et inimaginables, j'ai les mêmes erreurs...

  3. #23
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Points : 532
    Points
    532
    Par défaut
    Si tu as un NullPointerException, c'est parce que tu as une variable qui vaut null et sur laquelle tu fais un appelle de méthode. Essaye de mettre des trace un peut partout pour controler quel objet vaut null

  4. #24
    Membre actif Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Points : 228
    Points
    228
    Par défaut
    L'erreur n'est pas une "NullPointerException"...

    En fait elle vient de la manière dont tu gère les "path" de ton arbre :
    Tu rajoute un '\' après chaque non de l'arbre, ce qui fait que tu va essayer de lire une image comme ceci : "C:\bla\bla\image.png\"... Une image qui n'existe évidement pas !
    => Revoir la méthode "getAbsolutePath()"

    Cependant je trouve la réalisation très maladroite, je pense que ne devrait gérer que des objets File dans ton arbre (plutôt que de devoir reconsituer le path), et créer ton gestionnaire de rendu visuel (TreeCellRenderer). Je pense que c'est ça que tu essai de faire, afficher visuellement l'image dans l'arborescence lorsqu'il s'agit d'une image ? Ceci se fait avec un "renderer"...
    Tout passe, tout casse
    Le joint le cul lassent...


    http://www.myspace.fr/geampa_raler

  5. #25
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    Le problème du '\' après les noms des images est résolu. Cependant j'ai toujours les mêmes erreurs.

    Par contre j'ai rajouté une nouvelle ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(nom.isDirectory()){
    	DefaultMutableTreeNode node = new DefaultMutableTreeNode(nom.getName()+"\\");	
    	((DefaultMutableTreeNode) arbre.getLastSelectedPathComponent()).add(listFile(nom, node));						
    	arbre.repaint();
    					}
    Les fichiers ne s'affichent plus, je n'ai donc plus d'exceptions à ce niveau. Maintenant, pourquoi en sélectionnant "Documents and Settings" j'ai toujours une erreur ?

  6. #26
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    J'ai une classe Arborescence qui fonctionne désormais. Une classe PanneauImage fonctionnelle aussi. Maintenant, il ne me reste plus qu'à afficher les images contenues dans le chemin donné par l'arborescence.

    J'ai tenté :


    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
    			arbre.addTreeSelectionListener(new TreeSelectionListener(){
    				public void valueChanged(TreeSelectionEvent event) {
    					if(arbre.getLastSelectedPathComponent() != null){
    						File file = new File(getAbsolutePath(event.getPath()));
    						try {
    							PanneauImg = new PanneauImage(file);
     
    						} catch (IOException e) {
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    					}
    				}
     
    				private String getAbsolutePath(TreePath treePath){
    					String str = "";
    					//On balaie le contenu de l'objet TreePath
    						for(Object name : treePath.getPath()){
    					//Si l'objet a un nom, on l'ajoute au chemin
    							if(name.toString() != null)
    								str += name.toString();
    						}
    					return str;
    					}
    			});
    Mais rien ne s'affiche. Le panneau (PanneauImage) reste vide. J'ai tenté repaint(), etc... Toujours rien. Il n'y a pas un moyen pour actualiser un JPanel ?

    C'est tout ce qu'il me reste à faire, afficher ses images, et ce projet sera fini.
    Encore merci pour toutes vos réponses.

  7. #27
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Points : 532
    Points
    532
    Par défaut
    Tu veux dire qu'il s'efface ?
    Essaye de repaint le conteneur du Panel

  8. #28
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    Non, il ne fait rien. Aucune image ne s'affiche. Et j'ai sincèrement tout essayé (repaint(), etc...)

  9. #29
    Membre actif Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Points : 228
    Points
    228
    Par défaut
    Comme je l'ai dit précédement je pense que tu ne t'y prends pas correctement.

    Si tu veux afficher le composant "PanneauImage" dans ton arbre, ça n'est pas dans la navigation de l'arbre, mais dans sa représentation graphique qu'il faut le traiter.

    -> Avec la méthode addTreeSelectionListener tu gére le contenu de l'arbre pour des soucis de performences (ne pas avoir à charger complètement l'arbre dés le début), mais dans ton cas, le modèle de l'arbre devrait être organisé de cette manière :
    File racine
    - File Répertoire 1
    - - - File Sous-répertoire 1
    - - - File Sous-répertoire 2
    - File Répertoire 2
    - File Fichier 1

    Dans ton cas ici, tu stock à chaque élément de l'arbre un morceau du filePath ce qui n'est vraiment pas recommandé.

    Bon, cela fonctionne quand même, mais quoi qu'il en soit, la méthode valueChanged de ton TreeSelectionListener ne permet pas d'ajouter des composants graphique qui seront dessinés mais seulement d'élargir ton modèle. Actuellement chaque noeud sera dessiné de la même manière, à savoir, si le noeud contient d'autres noeuds, l'icône sera un répertoire sinon un point.

    Pour dessiner le composant "PanneauImage", il faut donc créer un TreeCellRenderer personnalisé qui renverra le composant le cas échant. A noté que pour pouvoir agrandir la hauteur de la ligne, il faudra définir sur ton arbre ceci : "arbre.setRowHeight(0);", la hauteur sera alors la hauteur définie dans la preferredSize du composant affiché.

    Je pense que tu ne t'y prends pas correctement parce que tu cherche à dessiner un "PanneauImage" qui est censé être un répertoire contenant des images. Seulement ici ton arborescence contient tous les fichiers et repertoires contenus sur le disque dur. La première question qui me vient à l'esprit, c'est comment est-ce que tu détermine que tu devra afficher un PanneauImage plutôt qu'un répertoire classique ? Savoir si un noeud est une image est une chose facile, mais actuellement le composant PanneauImage ne permet pas de voir les sous-dossiers et il n'affiche pas les images... Peut-être peux-tu m'expliquer exactement ce que tu cherche à réaliser ?
    Tout passe, tout casse
    Le joint le cul lassent...


    http://www.myspace.fr/geampa_raler

  10. #30
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    Problème résolu. Je poste mon code dès que ce dernier sera commenté. Merci à tous pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Redimensionner les images dans un tableau
    Par cyke37 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/10/2005, 19h19
  2. ligne blanche sous une image dans un tableau
    Par spikelille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 10/09/2005, 18h24
  3. Probleme d'affichage d'image dans une fenetre
    Par cgregueusse dans le forum MFC
    Réponses: 1
    Dernier message: 03/08/2005, 11h08
  4. Affichage d'images dans une fenêtre
    Par tonycalv dans le forum MFC
    Réponses: 6
    Dernier message: 20/04/2005, 20h02
  5. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28

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