是否可以使用JavaFX更改应用程序图标,还是必须使用Swing完成?
我试过这个并且它有效:
stage.getIcons().add(new Image(getClass().getResourceAsStream("../images/icon.png")));
图像image3 =新图像("Path");. stage.getIcons()添加(图像3);
在JavaFX中在 Headers 栏上插入自己的图标的另一种简单方法是使用以下方法将图像添加到主阶段:
Image ico = new Image("resources/images/iconLogo.png"); stage.getIcons().add(ico);
确保导入javafx.scene.image.Image(如果使用像netbeans这样的ide应该自动为你完成) .
假设您的舞台是“舞台”并且文件位于文件系统上:
stage.getIcons().add(new Image("file:icon.png"));
根据下面的评论,如果它包含在一个包含的jar中,你需要使用以下方法:
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("icon.png")));
我试过这个,它完全有效 . 代码是:
stage.getIcons().add( new Image( <yourclassname>.class.getResourceAsStream( "icon.png" )));
icon.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); } }
Output 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"));
希望能帮助到你 . 谢谢!!
如果您有一个图像文件夹并保存图标,请使用此文件夹
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>
您可以使用此代码行轻松地将图标放入应用程序
stage.getIcons() . add(new Image(“image path”));
您如何看待在src目录中创建新包,即image.icons并在那里移动.png图像?比你只需要写:
Image image = new Image("/image/icons/nameOfImage.png"); primaryStage.getIcons().add(image);
这个解决方案对我来说很完美,但我仍然不确定它是否正确(这里是初学者) .
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/icon.png")));
如果你的icon.png在资源目录中并且记得先放一个'/',否则它将无效
stage.getIcons().add(new Image(<yourclassname>.class.getResourceAsStream("/icon.png" )));
您可以使用此方法添加多个不同大小的图标 . 图像应该是同一图像的不同大小,并且将选择最佳大小 . eg. 16x16, 32,32
eg. 16x16, 32,32
stage.getIcons().add(new Image("/images/logo_only.png"));
在src文件夹中创建图像文件夹并从中获取图像是个好习惯 .
stage.getIcons().add(new Image(ClassLoader.getSystemResourceAsStream("images/icon.png")));
images文件夹需要在Resource文件夹中 .
我在我的应用程序中使用了它
Image icon = new Image(getClass().getResourceAsStream("icon.png")); window.getIcons().add(icon);
这里窗口就是舞台 .
stage.getIcons() . add(new Image((“nospaniol / ui / icons / nospaniol.png”)));
如果你有 Invalid URL or resource not found 将你的icon.png放在工作区的"bin"文件夹中 .
Invalid URL or resource not found
17 回答
我试过这个并且它有效:
图像image3 =新图像("Path");
. stage.getIcons()添加(图像3);
在JavaFX中在 Headers 栏上插入自己的图标的另一种简单方法是使用以下方法将图像添加到主阶段:
确保导入javafx.scene.image.Image(如果使用像netbeans这样的ide应该自动为你完成) .
假设您的舞台是“舞台”并且文件位于文件系统上:
根据下面的评论,如果它包含在一个包含的jar中,你需要使用以下方法:
我试过这个,它完全有效 . 代码是:
icon.png与源文件位于同一文件夹下 .
启动器的完整程序:)此程序设置堆栈溢出图标 .
Output Screnshot
无需更改代码 . 它仍然可以正常工作 . 在Java 1.8(1.8.0_45)中经过测试和验证 . 路径可以设置为本地或远程都支持 .
要么
希望能帮助到你 . 谢谢!!
如果您有一个图像文件夹并保存图标,请使用此文件夹
如果你直接在你的包装中使用它,这不是一个好习惯,请使用它
如果你有一个文件夹结构,你的图标在里面使用
你可以在fxml中添加它 . 阶段水平
您可以使用此代码行轻松地将图标放入应用程序
stage.getIcons() . add(new Image(“image path”));
您如何看待在src目录中创建新包,即image.icons并在那里移动.png图像?比你只需要写:
这个解决方案对我来说很完美,但我仍然不确定它是否正确(这里是初学者) .
如果你的icon.png在资源目录中并且记得先放一个'/',否则它将无效
您可以使用此方法添加多个不同大小的图标 . 图像应该是同一图像的不同大小,并且将选择最佳大小 .
eg. 16x16, 32,32
在src文件夹中创建图像文件夹并从中获取图像是个好习惯 .
images文件夹需要在Resource文件夹中 .
我在我的应用程序中使用了它
这里窗口就是舞台 .
stage.getIcons() . add(new Image((“nospaniol / ui / icons / nospaniol.png”)));
如果你有
Invalid URL or resource not found
将你的icon.png放在工作区的"bin"文件夹中 .