+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 46
    Points : 18
    Points
    18

    Par défaut Récupérer Objet File JComboBox

    Bonsoir !

    Je m’entraîne actuellement à la partie graphique, étant débutant en Java je bloque sur des choses parfois simples.

    L'exemple ci-dessous est un peu 'caricaturé' pour essayer d'être clair.

    Je possède une JComboBox qui se "remplie" de chemins de fichiers se trouvant dans un dossier spécifique. Voici le code :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private JComboBox FichiersDossier = new JComboBox();
    		File directory = new File(System.getenv("APPDATA"), ".dossier/test");
     
            File[] files = directory.listFiles(filefilter);
     
            for (int i = 0; i < files.length; i++) {
            	System.out.println(files[i]);
            	FichiersDossier.addItem(files[i].getName());
            }
    Pour le filefilter, c'est juste pour sélectionner une extension de fichiers, ce qui marche bien.

    Ce que je souhaite :
    L'utilisateur sélectionne un fichier dans le JComboBox pour le supprimer via un bouton.
    Or pour supprimer, je veux récupérer récupérer, via un .get je suppose, ce qui a été sélectionné dans le JComboBox, qui doit être le chemin d'accès au fichier.
    J'ai bien essayé en regardant la Javadoc mais je me perds un peu ou ne saisis pas bien la démarche.

    Pour mon bouton j'ai ceci :

    if (source == supprimerFichier) {
    Mais je ne vois pas quoi mettre pour récupérer le chemin d'accès du dossier !

    Si quelqu'un peut me filer un petit coup de pouce. Merci !

  2. #2
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 884
    Points : 41 473
    Points
    41 473

    Par défaut

    getName ne retourne que la fin du nom du fichier. Si tu stocke ça dans ta combobox, tu n'as plus assez d'information pour la suite.Stocke directement les File dedans, comme ça tu fais ensuite.
    Code :
    File aSupprimer = (File)FichiersDossier.getSelectedItem()
    Mais bon , du coupe, ça va afficher du caca à l'écran par défaut. Pour rattraper ça, il faut fournir à JComboBox un CellRenderer de ton cru qui sais comment afficher un File (comme par exemple afficher son getName() ou son path ou que sais-je
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 46
    Points : 18
    Points
    18

    Par défaut

    Merci bien de ta réponse ! J'ai trouvé un moyen de contourner un peu mon problème apparament mais je pense que ta solution sera mieux, en tout cas j'essaierai ça me fait apprendre.

    J'ai fait comme ceci :
    Code :
    String aSupprimer = new String(listeBackupJar.getSelectedItem().toString());
    Ça m'a récupéré le nom du fichier (avec extension), je l'ai ajouté à une méthode de suppression qui m'indiquait les fichiers parents et ça a fonctionné, en revanche je pense pas que je retiendrai cette façon de faire.

    Pour rattraper ça, il faut fournir à JComboBox un CellRenderer de ton cru qui sais comment afficher un File (comme par exemple afficher son getName() ou son path ou que sais-je
    Pour le caca c'est du genre "C:\Users\Gertrude\AppData\Dossier\Test[...]" dans une JComboBox de 3 pixels de large je suppose.

    Pas encore entendu parler des CellRenderer, je vais aller voir ça, merci !

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •