Java GDK+: изображение Pixbuf не найдено

Относительно какого каталога находится аргумент пути к файлу конструктора org.gnome.gdk.Pixbuf? И куда мне поместить файл?

Main.java

public class Main
{
    public static void main( String... args )
    {
        Gtk.init( args );
        new Example();
        Gtk.main();
    }
}

Пример.java

public class Example
{
    private Pixbuf icon;

    public Example()
    {
        try {
            icon = new Pixbuf( "images/bolt.png" );
        } catch ( FileNotFoundException e ) {
            e.printStackTrace();
        }
    }
}

Он выдает следующее исключение:

java.io.FileNotFoundException: изображения/web.png не найдены

Моя структура каталогов:

введите здесь описание изображения


person jrswgtr    schedule 30.01.2019    source источник


Ответы (1)


Используйте this.getClass().getResourceAsStream(/images/bolt.png), чтобы получить InputStream, и используйте этот ответ, чтобы преобразовать его в byte[], который вы можете передать конструктору Pixbuf.

Если вы используете Java 9, вы также можете вызвать readAllBytes() в файле InputStream.

person ariganis    schedule 30.01.2019
comment
Спасибо. Я проверю позже сегодня и отмечу ваш ответ как правильный, если он работает. - person jrswgtr; 31.01.2019
comment
Ошибка исчезла. Значок по-прежнему не отображается, но это уже другой вопрос. Благодарю вас! - person jrswgtr; 31.01.2019