Пакеты Eclipse, переключающиеся в папку, не могут загружать изображения - PullRequest
0 голосов
/ 08 мая 2019

В Eclipse я создаю Top Down Shooter (TDS) для школьного проекта.Пока что проект идет очень хорошо, но я столкнулся с проблемой.Всякий раз, когда я создавал новую папку в исходной папке моих ресурсов, она отображала пакет.Это не проблема, так как я подумал, что могу просто проигнорировать это, и все заработало, однако, когда я открыл Eclipse, чтобы снова начать работу над проектом, все пакеты превратились в папки.Сначала я не верил, что это будет проблемой, пока ни один из загружаемых мной изображений не будет работать.Код, который я использую, не изменился вообще.У меня вопрос, как я могу изменить папки обратно в пакеты, или как я обновляю свой код для загрузки в Изображения из папок вместо этого?

Я использую эти два метода для загрузки Изображения

/**
     * Loads an <code>Image</code> based on a specified relative path.
     * @param path the path of the <code>Image</code> to be loaded.
     * @return loaded image
     */
    public static Image loadRelativePath(String path) {
        Image image = null;

        try {
            image = ImageIO.read(Utility.class.getResourceAsStream(path));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return image;
    }

    /**
     * Loads an <code>Image</code> based on a specified absolute path.
     * @param path the path of the <code>Image</code> to be loaded.
     * @return loaded image
     */
    public static Image loadAbsolutePath(String path) {
        return Utility.loadRelativePath(path.substring(path.indexOf("/Images"), path.length()));
    }

Не знаю, поможет ли это кому-нибудь решить проблему, но я также использую эти два метода для загрузки изображений.

public static HashMap<String, Image> loadHash(String path) {
        HashMap<String, Image> map = new HashMap<String, Image>();

        List<File> files = listAllFiles(Utility.class.getResource("/Images").getPath());
        for(File allFiles : files) {
            if(Utility.getFileExtesnion(allFiles).equals(".png")) {
                map.put(allFiles.getPath().substring(allFiles.getPath().indexOf("/Image")), Utility.loadAbsolutePath(allFiles.getPath()));
            }
        }
        return map;
    }

    public static List<File> listAllFiles(String directoryName) {
        File directory = new File(directoryName);

        List<File> resultList = new ArrayList<File>();

        // get all the files from a directory
        File[] fList = directory.listFiles();
        resultList.addAll(Arrays.asList(fList));
        for (File file : fList) {
           if (file.isDirectory()) {
                resultList.addAll(listAllFiles(file.getAbsolutePath()));
            }
        }
        return resultList;
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...