it-swarm.com.ru

Как изменить значок в строке заголовка этапа в Javafx 2.0 моего приложения

Я попробовал 

 stage.getIcons().add(new Image("attuncore.jpg")); 

Но я не знаю, что происходит не так ..

Пожалуйста помоги. Заранее спасибо.

10
Bipin Bhandari

Полная программа для начинающих :) В этой программе установлен значок переполнения стека.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class StackoverflowIcon extends Application {

    @Override
    public void start(Stage stage) {
        StackPane root = new StackPane();
        // set icon
        stage.getIcons().add(new Image("/path/to/stackoverflow.jpg"));
        stage.setTitle("Wow!! Stackoverflow Icon");
        stage.setScene(new Scene(root, 300, 250));
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Вывод Screnshot

JavaFX Screenshot

Обновлено для JavaFX 8

Не нужно менять код. Это все еще работает отлично. Протестировано и проверено в Java 1.8 (1.8.0_45). Путь может быть установлен на локальный или удаленный оба поддерживаются.

stage.getIcons().add(new Image("/path/to/javaicon.png"));

OR

stage.getIcons().add(new Image("https://example.com/javaicon.png"));

enter image description here

Надеюсь, поможет. Спасибо!!

45
Madan Sapkota

Вы можете загрузить изображение из classpath следующим образом:

new Image(XYZ.class.getResourceAsStream("/xyz.png"))

где XYZ - это некоторое имя класса (может быть, из которого вы загружаете изображение), а xyz.png - это имя вашего файла изображения, помещенного в каталог (или файл JAR), включенный в ваш путь к классу.

Если вы хотите поместить изображение рядом с исходным файлом, вы должны опустить символ /. Ваш IDE должен быть сконфигурирован для копирования ресурсов (например, * .png) из каталога src в каталог bin. Но это должно быть стандартным поведением.

5
Frank Bruch

Решение, которое я нашел, установив в свойствах автономного рабочего каталога пакет, в котором размещены мой основной файл и изображение. 

1
Bipin Bhandari

Не забудьте сделать импорт 

import javafx.scene.image.Image;

Image icon = new Image(getClass().getResourceAsStream("myicon.png"));
stage.getIcons().add(icon);

Замените "myicon.png" своим значком. В этом случае он находится в той же папке, что и ваш класс Java.

1
daviek19

Ваш образ имеет правильный размер? Javadoc утверждает:

публичный финал ObservableList getIcons ()

Получает изображения значков, которые будут использоваться в оформлении окон и когда сведено к минимуму. Изображения должны быть разных размеров одного и того же изображения и будет выбран лучший размер, например. 16х16, 32,32.

1
Sergey Grinev

Для тех, у кого были проблемы с: 

Неверный URL: Неверный URL или ресурс не найден

Лучшее решение - сделать новый пакет, т.е. image.icons, и переместить туда свое изображение .png. Тогда вам просто нужно написать:

Image image = new Image("/image/icons/list.png");
primaryStage.getIcons().add(image);

Надеюсь, это кому-нибудь поможет!

0
Dawid