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 :

accéder au path d'une image avec Transferable


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut accéder au path d'une image avec Transferable
    Bonjour,

    J'ai un Transferable, t, et j'aimerai récupérer l'adresse physique de l'image sur laquelle j'ai cliqué.
    J'ai utilisé t.getTransferData(flavors[0]).toString() et j'obtiens sun.awt.image.ToolkitImage@145e044. Mais je ne sais pas comment traduire ce texte en chemin physique de l'image.

    Je suis également passé par une ImageIcon et j'obtiens à peu près pareil (javax.swing.ImageIcon@422ede) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Image myImage = (Image)t.getTransferData(flavors[0]) ;
    ImageIcon myIcon = new ImageIcon(myImage);
    Avez-vous une idée ? Merci.

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    Ou alors comment obtenir une adresse du genre javax.swing.ImageIcon@ à partir d'un JLabel peut être ...

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Euh, ma question va etre : qu'appelles-tu le "chemin physique de l'image" ou "l'adresse physique de l'image" ?

    Pour rappel, la method toString() retourne une description textuelle d'un objet qui peut etre d'un format et d'un contenu completement different de ce que tu as actuellement soit en utilisant d'autres types d'objets, soit en utilsant des JVM sur d'autres platformes ou fournies par d'autres vendeurs. Ce n'est donc pas un bon moyen d'esperer decouvrir l'addresse memoire de l'objet en reference (en fait un tel moyen n'existe probablement pas en Java pur).

    Si tu veux parler du chemin d'acces (sur le disque), tu dois alors bien sur le stocker puis l'exporter avec la DataFlavor appropriee en meme temps que l'export de l'image.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    Oui je parlais bien du chemin d'acces (sur le disque).
    Je te remercie bouye pour ton aide, je commençais à desespérer. Je vais essayer de stocker le chemin dans l'image alors.

    Il y a différents types de DataFlavor ?
    Moi j'ai utilisé celle là :
    private final DataFlavor flavors[] = { DataFlavor.imageFlavor };
    Ensuite j'ai la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Object getTransferData(DataFlavor flavor) {
    	if (isDataFlavorSupported(flavor)) {				
    		return image;
    	}
    	return null;
    }
    Donc d'après toi, je peux faire en sorte que mon image puisse avoir un champs supplémentaire ? Lorsque je crée mon ImageIcon et que je la mets dans mon JLabel, c'est là où je dois "surcharger" la classe ImageIcon en lui ajoutant un autre champs ? C'est bien ça ?

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    En effet, comme il existe plusieurs DataFlavor, tu peux exporter une meme donnee sous plusieurs formats (Transferable.getTransferDataFlavors() retourne un tableau de DataFlavor comme tu as du le voir) , dont la saveur DataFlavor.stringFlavor . Et donc quand cette saveur est demandee, l'objet retournee par getTransferData(DataFlavor flavor) est la chaine contenant le chemin d'acces plutot que l'image elle-meme.

    Concernant les images, a ma connaissance (pas trop essaye en fait) pas de solutions simple a part etendre la classe pour rajouter ce champs (quoique lit bien le descriptif des classes BufferedImage, etc... on ne sait jamais). Concernant ImageIcon par contre le chemin peut tres bien etre stocke dans la propriete "name" (getName()) ou "description" (getDescription()) de l'objet.

    EDIT - et si c'est un transfert de l'objet dans la meme JVM, il y a DataFlavor.javaJVMLocalObjectMimeType qui te permet de directement transferer ton ImageIcon sans avoir a la desasembler en une Image + String pour en creer une autre a la reception. A tester.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    Il y a un petit truc que je n'ai pas saisi.
    Quand j'utilise les DataFlavor, est-ce que je peux créer autant de méthodes que je veux afin qu'elles me retournent ce que je désire, par exemple la méthode qui me renvoie un String grâce à DataFlavor.javaJVMLocalObjectMimeType :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public String getTransferDataString(DataFlavor flavor) {
    	if (isDataFlavorSupported(flavor)) {				
    		return javaJVMLocalObjectMimeType ;
    	}
    	return null;
    }
    Mais lorsque je l'utilise String selectedImage = t.getTransferDataString(flavors[0]);, j'ai une erreur à cette ligne m'indiquant qu'il ne trouve pas la méthode que j'utilise :
    cannot find symbol method getTransferDataString(java.awt.datatransfer.DataFlavor)

    Comment cela se fait-il ?

    SOLUTION (à ce problème) : faire directement String selected = myFlavors.javaJVMLocalObjectMimeType;. Et on obtient application/x-java-jvm-local-objectref. Mais je n'ai toujours po l'adresse de mon image sélectionnée du début

Discussions similaires

  1. Path d'une image avec XML
    Par zamborta dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 31/05/2013, 01h28
  2. Appeler une image avec absolute path serveur
    Par rmz_a dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/10/2007, 10h56
  3. Réponses: 4
    Dernier message: 26/09/2005, 14h27
  4. [Débutante] Création d'une image avec un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 09/07/2004, 09h58
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

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