Le démarrage d'un JFileChooser à un répertoire spécifié et affiche uniquement les fichiers d'un type spécifique
J'ai un programme en utilisant un JFileChooser. Pour être bref, le programme complet est une interface graphique qui permet aux utilisateurs de manipuler les Png et Jpg. Je voudrais faire en sorte que le JFileChooser instantanément s'ouvre à l'image directory (windows). Lorsque l'utilisateur ouvre leur JFileChooser, il allait ouvrir directement à la bibliothèque d'images C:\Users(UTILISATEUR)\Photos
En outre, il serait bien d'afficher UNIQUEMENT les fichiers d'un type spécifique (Png et Jpg). De nombreux programmes semblent être en mesure de le faire; seulement la sélection de fichiers spécifiques. Ne JFileChooser permettre une telle chose? Actuellement, je suis en utilisant massivement fiable, courir autour de la méthode de rejeter les non-Png/Jpg.
Fait référence à la "browse" bouton de l'interface graphique, dans lequel un utilisateur de sélectionner la photo pour l'édition et l'affichera sur l'écran.
try {
int val = filec.showOpenDialog(GridCreator.this);
if(val==JFileChooser.APPROVE_OPTION) {
File unfiltered_picture = filec.getSelectedFile();
//get the extension of the file
extension=unfiltered_picture.getPath();
int index=extension.indexOf(".");
extension=extension.substring(index+1, extension.length());
//if the file is not jpg, png, or jpeg, reject it and send a message to the user.
if(!extension.matches("[jJ][pP][gG]") && !extension.matches("[pP][nN][gG]") && !extension.matches("[jJ][pP][eE][gG]")) {
JOptionPane.showMessageDialog(null,
"cannot load file. File must be of type png, jpeg, or jpg. \n Your file is of type " + extension,
"Error: improper file",
JOptionPane.OK_OPTION);
//if the file is of the proper type, display it to the user on the img JLabel.
} else {
finalImage = ImageIO.read(unfiltered_picture);
ImageIcon imgIcon = new ImageIcon();
imgIcon.setImage(finalImage);
img.setIcon(imgIcon);
img.invalidate();
h_divide.setValue(0);
v_divide.setValue(0);
}
}
} catch(IOException exception) {
exception.printStackTrace();
}
Merci.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour construire votre
JFileChooser
avec le répertoire que vous souhaitez démarrer, puis passer unFileFilter
avant de définir visible.Cet exemple des filtres pour les fichiers se terminant par ".png" ou "."jpg".
new File
dans le constructeur. D'où le code dit "Fichier pour démarrer dans". Quelque chose comme de nouveauxFile(System.getProperty("user.home"), "Pictures")
devrait fonctionner.FileSystemView
docs.oracle.com/javase/6/docs/api/javax/swing/filechooser/... pour trouver le répertoire home de l'utilisateur. À partir de là, c'est un jeu de devinettes basé sur Windows xp/7/8/9/10/etc...Lire l'API: http://docs.oracle.com/javase/6/docs/api/javax/swing/JFileChooser.html
Tout en haut de la javadoc de la page est un exemple de près exactement ce que vous voulez faire:
La classe que vous cherchez, en général, est
FileFilter
, qui est abstraite. Voir la javadoc: http://docs.oracle.com/javase/6/docs/api/javax/swing/filechooser/FileFilter.htmlMettre le tout dans une forme concise, voici un flexible sélecteur de fichier de routine. Il spécifie le répertoire initial et le type de fichier et il fournit à la fois le résultat sous forme de fichier ou un nom de chemin d'accès. Vous pouvez également définir l'ensemble de votre programme dans l'interface native mode en plaçant le setLookAndFeel de commande à l'entrée Principale de votre programme.