2015-02-13 4 views
1

У меня есть небольшая проблема с Свинг (или, может быть, Netbeans), я делал тестирование JFrame, я изменил свой фон, изображение с этой строкой коды:Изменение дизайна JFrame после создания JAR-файла? Изображение отсутствует

this.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("src/testdesign/BG.png"))))); 

И я добавил JLabel с Icon к кадру с использованием netBeans. В результате при компиляции проекта (в IDE) был:

enter image description here

Все это хорошо .. Но когда я создать файл JAR, результат:

enter image description here

I «Я не профессионал Java, поэтому я думаю, что способ, которым я изменил фон, не является правильным, или, может быть, это другое дело.

+0

возможно дубликат [Попытка загрузить иконку из файла JAR] (http://stackoverflow.com/questions/1133066/trying-to-load-icon-from-jar -file) – alex2410

ответ

2

Вы используете неправильный способ загрузки фонового изображения. В вашем местоположении изображения кода зависит от каталога проекта src. Вы должны загружать изображение из пути к классам, кроме файловой системы. Вы Class.getResource метод, чтобы исправить это, например:

this.setContentPane(new JLabel(new ImageIcon(getClass().getResource(pathToImage)))); 
+0

Спасибо за ваш ответ Сергей, но я получаю сообщение об ошибке: не статический метод не может быть re ... из статического контекста ... Я помещаюсь в конструктор, который вызывается из main (static), даже если я поместите его в другой меток, все из них вызываются по основному .. – user3426711

+1

@ user3426711 добавить пример кода к моему ответу –

+0

Спасибо, Сергей Я решил проблему, спасибо за быстрый ответ! – user3426711

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