как использовать JFileChooser, чтобы открыть файл, просто связав имя файла - PullRequest
0 голосов
/ 05 мая 2018

Я не могу открыть файл, просто записав имя файла в JFileChooser, если я не нахожусь в той же папке, что и я, что я могу сделать, чтобы исправить это?

    JDialog.setDefaultLookAndFeelDecorated(true);
                if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                    FileFilter imageFilter = new FileNameExtensionFilter("Image files", ImageIO.getReaderFileSuffixes());
                    chooser.setFileFilter(imageFilter);
                    File file = chooser.getSelectedFile();
                    String filePath = file.getAbsolutePath();
                    icon = new ImageIcon(filePath);
                    try{
                        original = ImageIO.read(file);
                        image = ImageIO.read(file);
                        width = image.getWidth();
                        height = image.getHeight();
                        if (width > 1000 && height > 1000){
                            image = null;
                            JOptionPane.showMessageDialog(null, "Image is too big (maximum 1000px by 1000px)", "Message: ", JOptionPane.INFORMATION_MESSAGE);
                        } else if (width > 1000 && height <= 1000) {
                            image = null;
                            JOptionPane.showMessageDialog(null, "Width is too big (maximum 1000px)", "Message: ", JOptionPane.INFORMATION_MESSAGE);
                        } else if (width <= 1000 && height > 1000) {
                            image = null;
                            JOptionPane.showMessageDialog(null, "Height is too big (maximum 1000px)", "Message: ", JOptionPane.INFORMATION_MESSAGE);
                        }
                    } catch (IOException e) {
                        System.out.println(e);
                    }

                    picture = new ImageIcon(image);
                    label.setIcon(picture);
                }

1 Ответ

0 голосов
/ 06 мая 2018

Просто имя файла не будет работать, если вы не в каталоге, потому что файл будет искать в текущем каталоге в открывшемся JFileChooser. Вам нужно будет указать JFileChooser полный абсолютный путь к файлу, а не просто имя файла

ПРИМЕЧАНИЕ: я просто имитирую его в Notepad ++, он просто говорит, что имя файла не может быть найдено, поэтому вы можете проверить существование файла перед другой операцией, добавьте этот фрагмент в свой код

JDialog.setDefaultLookAndFeelDecorated(true);
    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        FileFilter imageFilter = new FileNameExtensionFilter("Image files", ImageIO.getReaderFileSuffixes());
        chooser.setFileFilter(imageFilter);
        File file = chooser.getSelectedFile();
        if (!file.exists()) {
           JOptionPane.showMessageDialog(null, "The file "+file.getName()+"\ncannot be found !!!", JOptionPane.INFORMATION_MESSAGE);
           showDialogAgain();
        } else {
          String filePath = file.getAbsolutePath();
          icon = new ImageIcon(filePath);
          ...
        }
    }
    ...

Подробнее о JFileChooser Документация

...