JavaRush /Java блог /Архив info.javarush /Java ImageIcon и кривые руки
DenisJNewb
11 уровень

Java ImageIcon и кривые руки

Статья из группы Архив info.javarush
Java ImageIcon и кривые руки - 1

import javax.swing.*;
import java.awt.*;

public class TEST {
    public static void main(String[] args) {
        new Window();
    }

    static class Window extends JFrame {
        Window() {
            setSize(300, 250);
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setLayout(new FlowLayout());

            ImageIcon icon = new ImageIcon("icon.jpg");

            setIconImage(icon.getImage());
            getContentPane().add(new JLabel(icon));

            setLocationRelativeTo(null);
            setVisible(true);
        }
    }
}
Есть такой код, почему не показывается изображение в окне и почему не ставится иконка окна. icon.jpg имеет размер 32х32 пикселя и лежит в src с остальными файлами (пользуюсь intellij idea). Результат выполнения кода — пустое окно со стандартной иконкой.
Комментарии (8)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
DenisJNewb Уровень 11
16 ноября 2015
Ещё на эту же тему, думаю.
Есть код
String path = SMNote.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
            File file = new File(path+"db.txt");


Который выкидывает такую ошибку:

«C:\Program Files\Java\jdk1.8.0_45\bin\java» -Dfile.encoding=windows-1251 -jar C:\Users\User\IdeaProjects\NotePadNVES++\out\artifacts\SMNote\SMNote.jar
Ошибка в load: java.io.FileNotFoundException: C:\Users\User\IdeaProjects\NotePadNVES++\out\artifacts\SMNote\SMNote.jar\db.txt (Системе не удается найти указанный путь)

В IDE всё нормально работает, но .jar не хочет видеть этот файл. Проверил, файл в .jar лежит
Погуглил, решить не смог. Прошу помощи
laz_a_rus Уровень 39
12 ноября 2015
Выведите в консоль
System.out.println(System.getProperty("user.dir"));
и посмотрите куда указывает путь.
Писать нужно
ImageIcon icon = new ImageIcon("src/icon.jpg");
и все нормально будет.
AndreGold Уровень 28
12 ноября 2015
порнобуйте через
super.getContentPane();

и посмотрите корректный ли путь к картинке
"icon.jpg"