问题
是否可以使用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 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"));
希望能帮助到你。谢谢!!