Что вы делаете неправильно, когда вы вызываете new ImageIcon("bg.png")
, вы пытаетесь загрузить файл bg.png
из каталога current .Текущий каталог - это каталог, из которого выполняется java
.И текущий каталог, вероятно, не тот каталог, в который вы верите, когда вы выполняете java
из вашей IDE.
Используйте следующий код для отображения текущего каталога:
File dir1 = new File (".");
System.out.println("current directory: " + dir1.getAbsolutePath());
Вы, вероятно, должны загрузитьфайл png из пути к классам, используя Class.getResource("/images/bg.png")
.Создайте папку images
в исходном каталоге и поместите файл в этот каталог.Ваша IDE скопирует его в целевую папку вместе с файлами .class
.Если вы не используете IDE, вам придется скопировать ее самостоятельно.
РЕДАКТИРОВАТЬ:
После дополнительных исследований выяснилось, что основной причиной проблемы было использованиенулевой макет.Выше все еще остается, хотя, потому что загрузка файла из текущего каталога не очень хорошая идея.