[java] importer un dossier d'image

Fermé
b_khallou Messages postés 335 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 14 octobre 2011 - 17 avril 2008 à 00:00
b_khallou Messages postés 335 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 14 octobre 2011 - 19 avril 2008 à 22:27
Bonjour,
j'ai un projet de Java dont le but est d'écrire une application graphique , permettant de visualiser(en diaporama) les images contenues dans un répertoire choisi par l'utilisateur.
j'utilise le Netbeans pour faire le graphique.
mais le question comment je peut lister des images à partir d'un répertoire définie par l'utilisateur .
merci d'avance.
A voir également:

6 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 avril 2008 à 09:30
Bonjour,

En java tu peux choisir un répertoire avec l'objet JChooseFile.
Une boite de dialogue apparaît et demande à l'utilisateur de chercher le répertoire qu'il souhaite.
Une fois sélectionner, l'objet doit, si mes souvenir sont bon, te retourner le chemin complet jusqu'au répertoire.

Libre à toi une fois le chemin connu d'aller lister toutes les photos qui y sont présentes et de les "loader" dans ton interface graphique sous la forme que tu souhaite.
1
b_khallou Messages postés 335 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 14 octobre 2011 34
18 avril 2008 à 12:53
bon je suis debutant
mais le prof nous a demandé de faire un projet d'interface graphique ( or je ne le metrise pas) je sais ecrire des algorithme normale en java (les class : ses methodes ... ; heritage ) mais je ne sais pas comment l'implémenter dans un graphique .
il nous a demandé de faire d'abord l'interface avec Netbeans (les bouton barre menu , et c'est facile) et d'écrire l'algorithme avec JCreator c'est à dire ecrire chaque class tout seul ( class Diaporama , class listerImage..) puis à chaque classe correspond un bouton (quand on va cliqué sur le bouton Diaporama il va faire une appel de la class Diaporama) et cette implémentation on va le faire dans une dernier étape .
alors mon question l'algorithme dans le msg 2 correspond à la classe lister image ( bon il manque le mot class au debut)
1
b_khallou Messages postés 335 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 14 octobre 2011 34
17 avril 2008 à 19:37
merci pour votre réponse. 
bon j'ai fait de recherche sur internet et j'ai trouvé le code exacte de lister des images à partir d'un répertoire fournit en paramètre :


import java.io.File;
import java.io.FilenameFilter;

import javax.imageio.ImageIO;

import java.util.Set;
import java.util.HashSet;

// Lister les images d'un répertoire fournit en paramètre.
public static String[] listImages(String directory) 
{
    return new File(directory).list(new FilenameFilter()) 
    {
       public boolean accept(File dir, String name) 
       {
          // Les images sont les fichiers ayant une des extensions suivantes:
          // *.JPEG, *.JPG, *.PNG, *.GIF, *.BMP, ...
          // Au moins on liste les formats supporter par la version actuelle de Java
          String filename = new File(name).getName().toLowerCase();
          String[] formats = uniq(ImageIO.getReaderFormatNames());
          for (int i = 0; i < formats.length; ++i) 
          {
             if (filename.endsWith("." + formats[i])) 
             {
                return true;
             }
          }
          return false;
       }
    }
}

// Supprimer les répétitions dans un tableau de chaînes de caractères
private static String[] uniq(String[] strings) 
{
    Set set = new HashSet();
    for (int i = 0; i < strings.length; ++i)
     {
       set.add(strings[i].toLowerCase());
    }
    return (String[])set.toArray(new String[0]);
}


j'ai pas compris la dernière bloc du "// Supprimer les répétitions dans un tableau de chaînes de caractères" et quoi son utilité.et lors de la compilation il me donne un erreur : 'class' or 'intereface' expected ( line10: au premier du prg)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 avril 2008 à 09:29
Bonjour,

Est-ce que tu sais programmer en Java ou si tu es débutant ?
Ne prends pas la mouche, je pose la question parce qu'apparament tu as copié / coller le code ci-dessus dans un fichier java, puis tu as essayé de le compiler.
Il faut savoir que toutes fonctions est définie dans une classe, ou alors dans une interface.
Une interface ne sert généralement qu'à définir le squelette d'une fonction (et non le corps).
Donc dans ton cas, il faut que tu inclue cette fonction à l'intérieur d'une déclaration de classe (qui a le même nom que le nom du fichier java dans lequel tu as mis cette fonction).

Sinon pour ce qui est de la fonction, elle fait ce qui est marqué : supprimer toutes les chaînes de caractères semblable.
Par exemple dans ton tableau qui liste les différents formats d'image, si tu mets deux fois 'IMG', après le passage dans la fonction il ne devrait ne rester qu'une seule chaine de caractère 'IMG'.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 avril 2008 à 13:44
D'accord, dans ce cas peux-tu remettre l'intégralité du code de la classe qui ne compile pas ?
0
b_khallou Messages postés 335 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 14 octobre 2011 34
19 avril 2008 à 22:27
oui si la class est juste , dans l'interface qui est déjà crée par Netbeans et où j'ai un bouton " importer" , je clic sur lui par le bouton droite >events >action>actionPerformed , et il m' apparut , dans le code , un champ où je vais collé la class de lister image
0