如何在我的应用程序的javafx 2.0中更改阶段标题栏上的图标[重复]

Posted

技术标签:

【中文标题】如何在我的应用程序的javafx 2.0中更改阶段标题栏上的图标[重复]【英文标题】:How to Change the icon on the title bar of a stage in java fx 2.0 of my application [duplicate] 【发布时间】:2012-05-03 18:53:17 【问题描述】:

我试过了

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

但我不知道出了什么问题..

请帮忙。提前致谢。

【问题讨论】:

将错误消息附加到您的问题(如果有)。 我猜 attuncore.jpg 没有找到。 问题是我没有收到任何错误。 SO中有一个类似的问题。查看下面的链接JavaFX Application Icon 【参考方案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 ***Icon extends Application 

    @Override
    public void start(Stage stage) 
        StackPane root = new StackPane();
        // set icon
        stage.getIcons().add(new Image("/path/to/***.jpg"));
        stage.setTitle("Wow!! *** Icon");
        stage.setScene(new Scene(root, 300, 250));
        stage.show();
    

    public static void main(String[] args) 
        launch(args);
    

输出截图

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

希望对您有所帮助。谢谢!!

【讨论】:

我想知道为什么没有人投票给你,谢谢你的回答 尺寸重要吗? c: 完美答案,大小似乎无关紧要。【参考方案2】:

您可以像这样从类路径加载图像:

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

其中 XYZ 是某个类名(可能是您从中加载图像的那个),xyz.png 是图像文件的名称,放在类路径中包含的目录(或 JAR 文件)中。

如果你想把图片放在源文件旁边,你必须省略 / 字符。然后,您的 IDE 需要配置为将资源(如 *.png)从 src 复制到 bin 目录。但这应该是标准行为。

【讨论】:

【参考方案3】:

对于那些有问题的人:

无效网址:无效网址或找不到资源

最好的解决方案是制作新的包,即 image.icons 并将你的 .png 图像移到那里。然后你只需要写:

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

我希望这对某人有帮助!

【讨论】:

【参考方案4】:

您的图片尺寸是否正确? Javadoc 声明:

public final ObservableList getIcons()

获取要在窗口装饰中使用的图标图像以及何时使用 最小化。图像应该是同一图像的不同尺寸,并且 将选择最佳尺寸,例如。 16x16, 32,32。

【讨论】:

感谢 Sergey,但图像大小不会影响我认为的。但是是的,我终于通过将独立工作目录的属性设置为放置我的主要和图像的包来获得解决方案。 哦,图像查找是个问题,太好了,你已经找到了。有一堆类似的问题,例如:***.com/questions/10062270/…【参考方案5】:

我通过将独立工作目录的属性设置为放置我的主要和图像的包找到的解决方案。

【讨论】:

【参考方案6】:

别忘了导入

import javafx.scene.image.Image;

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

"myicon.png" 替换为您的图标。在这种情况下,它与您的 java 类位于同一文件夹中。

【讨论】:

以上是关于如何在我的应用程序的javafx 2.0中更改阶段标题栏上的图标[重复]的主要内容,如果未能解决你的问题,请参考以下文章

关闭阶段JavaFX后如何停止WebEngine?

JavaFx SceneBuilder 2.0 无法解析自定义控件

如何在 JavaFX 中将 CheckBox 添加到 TableView

请求关注 JavaFX 阶段不会更改 macOS 左上角菜单栏标题

如何在 JavaFX 中获得一个阶段的关闭事件?

JavaFx 添加图像