Использование ссылок в разных папках для изображений (Java) - PullRequest
0 голосов
/ 22 декабря 2011

Я разрабатываю калькулятор с настраиваемыми кнопками. Естественно, я хочу организовать свои файлы изображений в папках, отличных от интерфейсов пакета. Расположение папок - interfaces / Seven / seven-normal.png, но всякий раз, когда я не включаю полную ссылку

    "C:\Liloka\Source\interfaces\Seven\seven-normal.png" 

это не работает, и все исчезает. Клянусь, я видел, как это делается в обычном коде. Если бы я использовал это в соответствующих программах, я не могу ожидать, что люди будут менять ссылку на то место, куда они поместили код! Вот код, который я использовал:

    seven = new ButtonImage("/Seven/seven-normal.png"); - Doesn't work
    nine = new ButtonImage("C:/Users/Liloka/workspace/WebsiteContent/src/interfaces/Nine/nine-normal.png"); - Does work

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Просто удалите первую косую черту.

seven = new ButtonImage("interfaces/Seven/seven-normal.png");

interfaces - это папка, которая должна находиться в той же папке, что и ваш JAR.

2 голосов
/ 22 декабря 2011
"/Seven/seven-normal.png"

... - это путь к C:\Seven\seven-normal.png - из-за / в самом начале вашего пути, что по сути означает from the root of the drive, go to the "Seven" folder, and then load "seven-normal.png"

Вы должны использовать относительный путь, что-то вроде "../../interfaces/Seven/seven-normal.png" или, может быть, просто "interfaces/Seven/seven-normal.png"

Первый путь приведет вас «вверх» на две папки, а затем вниз до interfaces/Seven/seven-normal.png. По сути, вы должны выяснить, в какой папке работает ваш код, также называемый «рабочим каталогом», и составить относительный путь оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...