Comment sélectionner par défaut FileFilter lors de la création d'un JFileChooser dialogue?
Bon après-midi à tous,
J'ai une instance d'un javax.swing.JFileChooser et j'ai ajouté un peu utilisable javax.swing.FileFilters à l'aide de addChoosableFileFilter.
Cependant, quand je afficher la boîte de dialogue (par showSaveDialog), mon personnalisée utilisable FileFilter n'est pas sélectionnée par défaut.
Je voulais sélectionnez le filtre "Fichiers d'Image" par défaut..
Comment choisir un filtre par défaut pour le javax.swing.JFileChooser dialogue?
SSCCEd:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new java.lang.Runnable() {
@Override
public void run() {
new javax.swing.JFrame() {
{
final javax.swing.JButton button = new javax.swing.JButton("Save");
button.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mousePressed(java.awt.event.MouseEvent e) {
new javax.swing.JFileChooser() {
{
addChoosableFileFilter(NewFileFilter("Text Files", new String[] { "txt" }));
addChoosableFileFilter(NewFileFilter("Image Files", new String[] { "gif", "png", "jpg" }));
addChoosableFileFilter(NewFileFilter("Audio Files", new String[] { "mp3" }));
addChoosableFileFilter(NewFileFilter("Video Files", new String[] { "mp4", "avi" }));
showSaveDialog(button);
}
private javax.swing.filechooser.FileFilter NewFileFilter(final String desc, final String[] allowed_extensions) {
return new javax.swing.filechooser.FileFilter() {
@Override
public boolean accept(java.io.File f) {
if (f.isDirectory()) {
return true;
}
int pos = f.getName().lastIndexOf('.');
if (pos == -1) {
return false;
} else {
String extension = f.getName().substring(pos + 1);
for (String allowed_extension : allowed_extensions) {
if (extension.equalsIgnoreCase(allowed_extension)) {
return true;
}
}
return false;
}
}
@Override
public String getDescription() {
return desc;
}
};
}
};
}
});
add(button);
setSize(100, 100);
setVisible(true);
}
};
}
});
}
OriginalL'auteur Pacerier | 2012-02-20
Vous devez vous connecter pour publier un commentaire.
À l'aide de setFileFilter():
Pourquoi êtes-vous sous-classement le sélecteur de fichier, plutôt que de simplement l'utiliser? Et pourquoi n'êtes-vous pas le respect de Java conventions de nommage (méthodes de commencer avec une lettre minuscule)? Et pourquoi ne pas vous respecter Swing du filetage de la politique, qui dit que le Swing composants doivent être utilisés dans l'EDT.
Code de Conventions pour le Java
Parce que c'est la convention standard de Java.
OriginalL'auteur JB Nizet
OriginalL'auteur Daniel Boakye