JavaFX应用程序图标

问题

是否可以使用JavaFX更改应用程序图标,还是必须使用Swing完成?


#1 热门回答(173 赞)

假设你的舞台是"舞台"并且文件位于文件系统上:

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

根据下面的评论,如果它包含在一个包含的jar中,你需要使用以下方法:

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

#2 热门回答(61 赞)

我试过这个,它完全有效。代码是:

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

icon.png与源文件位于同一文件夹下。


#3 热门回答(60 赞)

初学者的完整程序:)这个程序设置Stack Overflow Icon。

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

希望能帮助到你。谢谢!!