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.

InformationsquelleAutor corvid | 2013-04-11