Иконка Приложения JavaFX



можно ли изменить значок приложения с помощью JavaFX, или это должно быть сделано с помощью Swing?

1244   15  

15 ответов:

предполагая, что ваш этап "этап" и файл находится в файловой системе:

stage.getIcons().add(new Image("file:icon.png"));

согласно комментарию ниже, если он завернут в содержащую банку, вам нужно будет использовать следующий подход:

stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("icon.png")));

я попробовал это, и это полностью работает. Код такой:

stage.getIcons().add(
   new Image(
      <yourclassname>.class.getResourceAsStream( "icon.png" ))); 
.формат PNG в той же папке, что и исходные файлы.

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

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

надеюсь, что это помогает. Спасибо!!

Если у вас есть папка с изображениями и значок сохраняется в этом используйте это

stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/images/comparison.png")));

и если вы непосредственно используете его из своего пакета, который не является хорошей практикой, используйте это

stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("comparison.png")));

и если у вас есть структура папок, и у вас есть значок внутри этого использования

stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("../images/comparison.png")));

вы можете добавить его в fxml. Уровень сцены

<icons>
    <Image url="@../../../my_icon.png"/>
</icons>

что вы думаете о создании нового пакета т. е. образа.значки в вашем каталоге src и перемещение туда вас .png изображения? Чем вам просто нужно написать:

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

Это решение работает для меня отлично, но все же я не уверен, что это правильно (новичок здесь).

stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/icon.png")));

Если ваш значок.png находится в resources dir и не забудьте поставить'/', прежде чем в противном случае он не будет работать

stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/icon.png" )));

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

stage.getIcons().add(new Image("/images/logo_only.png"));

это хорошая привычка, чтобы сделать папку изображений в папке src и получить изображения из него.

stage.getIcons().add(new Image(ClassLoader.getSystemResourceAsStream("images/icon.png")));

папка изображений должна быть в папке ресурсов.

я использовал это в моем приложении

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

здесь окно является этапом.

этап.гетиконы ().добавить (новое изображение (("nospaniol / ui / icons / nospaniol.png")));

я попробовал это, и это работает:

stage.getIcons().add(new Image(getClass().getResourceAsStream("../images/icon.png")));

Image image3 = новое изображение ("путь");
ступень.гетиконы ().добавить(image3);

еще один простой способ вставить свой собственный значок в строке заголовка в JavaFX-это добавить изображение на ваш основной этап, используя следующий метод:

Image ico = new Image("resources/images/iconLogo.png");
stage.getIcons().add(ico);

убедитесь, что ваш импорт javafx.сцена.изображение.Изображение (при использовании ide, например netbeans, это должно быть сделано автоматически).

Comments

    Ничего не найдено.