Buenas tardes todos,¿Cómo seleccionar FileFilter por defecto al crear un cuadro de diálogo JFileChooser?
que tiene una instancia de un javax.swing.JFileChooser y añadió algunas choosable javax.swing.FileFilter s utilizando addChoosableFileFilter.
Sin embargo, cuando muestro el cuadro de diálogo (a través del showSaveDialog), mi FileFilter elegible personalizado no está seleccionado de forma predeterminada.
quería para seleccionar el filtro "Archivos de imagen" por defecto ..
¿Cómo seleccionamos un filtro predeterminado para el diálogo javax.swing.JFileChooser?
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);
}
};
}
});
}
Se agregó javax.swing.SwingUtilities.invokeLater en el ejemplo. ¿Por qué deberían los métodos ser camelCased y no PascalCased? – Pacerier
[Convenciones del código para Java] (http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html) – mKorbel
Porque esa es la convención estándar en Java. –