6
votes

Jfilechooser.showsavedialog: tous les fichiers grisés

J'essaie d'utiliser le jfilechooser code> pour obtenir des fichiers pour le chargement et la sauvegarde. La boîte de dialogue qui apparaît avec OpenFileDialog () code> fonctionne bien, mais lorsque j'utilise la méthode SavisterfileDialog () code>, la fenêtre de la boîte de dialogue contient tous les noms de fichiers grisés. Cela se produit avec ou sans fichier FileFilter code> (mon exemple inclut un pour mieux montrer ce que je vois).

Voici un programme minimal pour illustrer: P>

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Temp extends JFrame {
    public static void main(String[] args){
    JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JFileChooser chooser = new JFileChooser();
        FileNameExtensionFilter filter = new FileNameExtensionFilter("Text File", "txt");
        chooser.setFileFilter(filter);

        frame.setVisible(true);
        chooser.showOpenDialog(null);
        chooser.showSaveDialog(null);
    }
}


6 commentaires

Réponse courte, oui, c'est le comportement attendu. Contrairement à Windows, ce qui excluait simplement les fichiers de la liste visible, pour une redevance étrange que Mac OS Look & Sentence décide que les fichiers doivent être grisés (lorsque vous ne pouvez pas les sélectionner)


Mais selon le filtre, les fichiers .txt doivent être à la fois visibles + sélectionnables (voir comment ils se trouvent dans la boîte de dialogue ouverte: dans une police noire (par opposition à gris).


@Madprogrammer est correct. Vous peut Sélectionnez un nom de sortie grisé, qui devient alors le nouveau candidat Enregistrer sous nom.


@trashgod à droite - Tous les fichiers sont sélectionnables. Ce que je cherche, ce sont les fichiers .txt à afficher dans la couleur "normale" lors de la boîte de dialogue Enregistrer, de la même manière qu'ils ont l'air dans la boîte de dialogue ouverte.


Le comportement par défaut n'est pas inattendu par les utilisateurs de Mac, mais j'ai suggéré des alternatives ci-dessous.


@trashgod (+ @madprogrammer) - Ouais, en regardant d'autres applications indigènes, il semble que ce soit le cas, même si je ne l'ai jamais vraiment remarqué auparavant. Je suppose que mes yeux avaient l'air particulièrement mauvais dans le jfilechooser. Je vais jouer avec L + F s'il continue de me déranger :)


3 Réponses :


0
votes

mmm ... Je pense que montrez des dialogues comme vous ne le faites pas n'est pas la meilleure façon

JFrame parentFrame = new JFrame();

JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Specify a file to save");    

int userSelection = fileChooser.showSaveDialog(parentFrame);

if (userSelection == JFileChooser.APPROVE_OPTION) {
    File fileToSave = fileChooser.getSelectedFile();
    System.out.println("Save as file: " + fileToSave.getAbsolutePath());
}


1 commentaires

L'utilisation d'un cadre parent me donne le même comportement



2
votes

Je cherche les fichiers .txt à afficher dans la couleur "normale" lors de la boîte de dialogue Enregistrer.

C'est contrôlé par le FILECHOOSERUI Délégué spécifique à un look & sens particulier, par ex. Aquafilechooserui sur Mac OS X. Vous pouvez utiliser un L & F différent, (laborieusement) écrire votre propre FILECHOOSERUI ou développez une personnalisation GUI .


1 commentaires

Ooh, beau lien. ;) OTOH que je soupçonne que l'utilisateur typique OS X préférerait le look par défaut («chemin du moindre surprise», etc.). Agréable d'avoir des alternatives cependant. :)



2
votes

Ce que j'ai fini par faire était d'utiliser:
xxx

My Save Dialog ressemble à une boîte de dialogue Enregistrer et le fichier fichier gris uniquement les fichiers que échouer son test.


0 commentaires