Comment mettre le bouton "créer un dossier" sur un JFileChooser?

Fermé
Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015 - Modifié par Mopakel le 8/12/2015 à 16:14
Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015 - 9 déc. 2015 à 13:58
Bonjour tout le monde,

Comme l'indique le titre, je souhaite ajouter un bouton "Créer un dossier" sur un JFileChooser. Mais comment s'y prendre?

J'ai mis mon JFileChooser dans une JFrame... comme ceci :

JFileChooser fchooser = new JFileChooser();
JFrame fenetre = new JFrame();

fenetre.add(fchooser);


Mais comment ajouter le fameux bouton créer un dossier... Mais sans faire
fenetre.add(new JButton("Créer un dossier"));
?!
Il faut savoir que mon ordi tourne sous OSX El Captiant (mac) et que l'interface y est justement différent que sur Windows.

Il n'y aurait-il pas une façon de le faire? Merci d'avance à toutes vos propositions et bien sûr solutions...
A voir également:

2 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
8 déc. 2015 à 21:50
Bonjour,

Je n'ai pas OS X pour tester mais normalement tu dois avoir plusieurs LookAndFeel disponibles, si celui par défaut ne contient pas le bouton, probablement que d'autres le font.

Sous Windows j'ai 5 LnF disponibles, 4 ont le bouton Nouveau Dossier.

Voici le code pour tester :

import javax.swing.JFileChooser;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;

public class Test {
    public static void main(String[] args) throws Exception {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            UIManager.setLookAndFeel(info.getClassName());
            JFileChooser chooser = new JFileChooser();
            System.out.println(info.getClassName());
            chooser.setName(info.getClassName());
            chooser.showOpenDialog(null);
        }
    }
}
0
Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015
8 déc. 2015 à 22:36
Merci KX, sur mac OS X, il y a 4 LookAndFeel qui se sont affichés! :-)

Mais j'aimerais garder celui par "défaut" c'est à dire com.apple.laf.AquaLookAndFeel où le bouton "créer un dossier" ne s'y affiche pas... :-(
Note : J'ai déjà vu quelque part qu'on peut le faire, mais je ne sais pas comment...
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
8 déc. 2015 à 22:43
Essayes comme ceci (je ne peux pas tester sous OS X)

import javax.swing.Action;

JFileChooser chooser = new JFileChooser();
Action newFolder = chooser.getActionMap().get("New Folder");
newFolder.setEnabled(true);
chooser.showOpenDialog(null);
0
Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015 > KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024
Modifié par Mopakel le 8/12/2015 à 22:54
J'ai essayé et ça m'affiche ceci :
Exception in thread "main" java.lang.NullPointerException
at N4.TestInterfaceVB.main(TestInterfaceVB.java:11)
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019 > Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015
8 déc. 2015 à 23:08
J'imagine que c'est newFolder qui vaut null, ce qui arrive parce que "New Folder" n'existe pas du tout, donc on ne peut pas le forcer à s'afficher...

Affiches les différentes clés de l'ActionMap, peut-être qu'il y a un bouton équivalent qui s’appellerait différemment :

System.out.println(Arrays.toString(chooser.getActionMap().allKeys()));
0
Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015 > KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024
Modifié par Mopakel le 8/12/2015 à 23:24
Voici ce que ça m'affiche lorsque je lance ce programme
package N4;

import java.util.Arrays;
import javax.swing.Action;
import javax.swing.JFileChooser;

public class TestInterfaceVB {
    public static void main(String[] args) throws Exception {
     
     JFileChooser chooser = new JFileChooser();
     System.out.println(Arrays.toString(chooser.getActionMap().allKeys()));
//     Action newFolder = chooser.getActionMap().get("New Folder");
//     newFolder.setEnabled(true);
//     chooser.showOpenDialog(null);
     
    }
}

Et ça m'affiche ceci après avoir lancé le programme : [javax.swing.JComponent$ActionStandin@2077d4de]

(Est-ce que c'est bien ce que vous avez demandez? Si ce n'est pas le cas, auriez-vous l'envie et la gentillesse de me donnez le petit bout de code à tester et de vous en informer le résultat? :-) )

Et merci encore !!!!
0
Mopakel Messages postés 7 Date d'inscription mardi 8 décembre 2015 Statut Membre Dernière intervention 13 décembre 2015
Modifié par Mopakel le 9/12/2015 à 14:01
J'ai une petite précision à apporter, comme vous voyez dans la capture d'écran ci-dessous, le JFileChooser (=> dans un JFrame) sur mac est comme cela et ce que j'aimerais c'est qu'il y aie le bouton "créer un répertoire" en bas à gauche! Mais bien sûr comme je vous l'avais dit, sans créer un JButton et que si je clique dessus, un répertoire/dossier est créé!


Note : Je suis sûr qu'il y a une façon de le faire... (car pour donner le nom du nouveau dossier, je l'édite directement sur l'interface graphique, sans qu'il y aie une petite fenêtre qui me pose la question...)

Merci beaucoup à toutes les réponses et solutions liées à ce sujet!
À bientôt!
0