有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaFX中舞台上的java设置图标

我想知道如何在JavaFXStage上设置图标。 我已经找到了这个方法,但它不能正常工作

  stage.getIcons().add(new Image(iconImagePath));

stage是javafx的一个实例。阶段我已经导入了javafx。场景形象形象 这是我们收到的例外情况:

无效URL:找不到无效URL或资源

此外,iconImagePath没有问题,它的值是“G:/test.jpg” 在G驱动器中有一个名为test的jpg文件。此外,当我们使用ImageIO读取相同的URL时,我们可以很容易地做到这一点


共 (6) 个答案

  1. # 1 楼答案

    stage.getIcons().add(new Image(getClass().getResourceAsStream("bal.png")));
    

    这个例子很有效。我在源文件所在的文件夹/包中放置了一个图标。java文件

    目录结构

  2. # 2 楼答案

    javafx.scene.image.Image的构造函数需要URI,而不是(完整)路径。此URI可以是相对的(例如/images/flower.png),也可以是绝对的(例如file:flower.png

    G:/test.jpg这样的字符串不是有效的URL,因此是非法的

    试试file:g:/test.jpg

    通常,图标应该与应用程序捆绑在一起,因此只需将图像文件放入类路径(例如,如果您使用的是eclipse,请将其放入“src”目录),然后像这样使用它:

    stage.getIcons().add(new Image("/logo.jpg"));
    
  3. # 3 楼答案

    最佳方式:

    stage.getIcons().add(new Image(getClass().getResource(IconImagePath).toExternalForm()));
    
  4. # 4 楼答案

    使用

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

    并把图像的标志。项目根目录中的png(与src所在的目录相同)

  5. # 5 楼答案

    // Set the icon
    stage.getIcons().add(new Image(getClass().getResourceAsStream("penguin.png")));
    

    我也面临同样的问题。我使用了Netbeans。我不确定其他IDE的文件夹结构是否不同,但我必须将图片放在/build/classes/(包含JavaFX类文件的包)中。这意味着它不会进入src文件夹

  6. # 6 楼答案

    别忘了你的图标必须是32x3216x16分辨率,如果不是,它就不起作用