2016-01-24 3 views
1

в моем проекте Мне нужно создать изображение для каждого объекта при его создании.Java - импортировать основной класс в подпапку для изображения

public abstract class Pirate extends ImageView { 
    protected static int pirateSpeed, pirateScore; 
    protected String word; 

    public Pirate(String face, String word) { 
     this.setImage(new Image(PiratesAndTreasures.class.getResource("/resources/" + face).toExternalForm())); 
     this.word = word; 
    } 
} 

PiratesAndTreasures является основным классом и структура проекта выглядит следующим образом:

enter image description here

Насколько я понял, мне нужно получить доступ к основному классу, когда я использую это:

new Image(TheMainClass.class.getResource("/resources/" + picture).toExternalForm())); 

..это проблема: я не смог найти способ импорта из верхней папки или из «src».

Любая помощь будет высоко оценена.

UPDATE: В нем говорится, «Не удается разрешить символ PiratesAndTreasures»

+0

Одна из причин, по которой у вас могут быть проблемы с этим, заключается в том, что на скриншоте вы видите каталог исходного дерева, однако это не обязательно, как файлы объединены (относительный путь) в пути к классам. Вероятно, вам следует добавить некоторые сведения о том, как выглядит ваш манифест и как выглядит ваша двоичная структура. – hotzst

+0

Один из способов - обеспечить абсолютный путь к вашему ресурсу. Пример: «C: \ Project \ ... \ java \ main \ src \ " – user2004685

+0

Я не уверен, что полностью понял; Из класса Pirate мне нужно импортировать PiratesAndTreasures (который является основным классом), и я не могу этого сделать, либо пакетом, либо каким-либо другим. Мне нужно импортировать это, поскольку я не могу создать образ для класса Pirate. –

ответ

0

Вы можете попробовать использовать ImageIO.read(getClass().getResource("/resources/" + picture)) Таким образом, его не зависит от, где основной класс. Это должно работать так же, как и у вас выше, поскольку все эти подпапки находятся под src.

+0

Я считаю, что getResource() будет автоматически искать каталог/resources. Есть ли необходимость в предоставлении «/ resources /» под ним? – user2004685

+0

Мне нужен класс Pirate для расширения ImageView. –

+0

getResource() не ищет ресурсы имени папки, он получает заданный тип данных (например, аудио, изображения, текстовые файлы и т. Д.), Поэтому вам все равно нужно сказать, в какую папку искать и какой файл получить. Следовательно, "/ resources /" – Tristan

Смежные вопросы