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

Я пробовал

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

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

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

Ответ 1

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

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"));

ИЛИ

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

enter image description here

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

Ответ 2

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

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

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

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

Ответ 3

У вашего изображения правильный размер? В Javadoc говорится:

public final ObservableList getIcons()

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

Ответ 4

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

Ответ 5

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

import javafx.scene.image.Image;

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

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

Ответ 6

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

Недопустимый URL: неверный URL-адрес или ресурс не найден

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

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

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