2015-12-09 2 views
1

В настоящее время, как я имею в виду моих изображений есть с помощью строки кода:Как вы относитесь к изображению без использования пути к файлу?

static ImageIcon img1 = new ImageIcon("src\\img1.png"); 
static ImageIcon img2 = new ImageIcon("src\\img2.png"); 

Однако, когда я экспортировать это из затмения в .jar файл, картинка не отображается. Можно ли ссылаться на изображение без установки полного пути к файлу (например, «C: \ XXXX \ XXXX \ XXXX.img1.jpg)), потому что если я поместил .jar на флешку, полный путь к файлу было бы бесполезно

+1

Используйте 'Class # getResource', например' getClass(). getResourc e ("/ img1.png')' – MadProgrammer

+1

Кроме того, Java знает секвенсор пути в вашей системе и заменит его на любой «/» в пути. Ваш путь выше может быть написан как «src/img1.png», и он будет работать в любой системе, Windows, * nix и т. Д. Как это жестко закодировано только для Windows, – markspace

+0

@markspace Неверно. Java не делает ничего особенного для путей к файлам. Единственная причина, по которой вы можете использовать косую черту в Windows, - это то, что Windows также позволяет использовать ее как разделитель в дополнение к обратному косую черту. Это зависит от ОС. (Обратите внимание, что я говорю о путях файлов, например, в вопросе. * Пути ресурсов *, как в Class.getResource, всегда используют косую черту) –

ответ

0

на упаковке содержит изображение создать любой пустой класс? Например: ImageLoader

Если вы хотите загрузить изображение:

ImageIcon img1 = new ImageIcon(ImageLoader.class.getResource("img1.png")); 

ImageLoader.class.getResource: будет возвращать URL в ImageLoader class

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