如何在我的应用程序的java fx 2.0中更改舞台标题栏上的图标

我试过了

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

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

请帮忙。 提前致谢。

初学者的完整程序:)这个程序设置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截图

针对JavaFX 8进行了更新

无需更改代码。 它仍然可以正常工作。 在Java 1.8(1.8.0_45)中经过测试和validation。 路径可以设置为本地或远程都支持。

 stage.getIcons().add(new Image("/path/to/javaicon.png")); 

要么

 stage.getIcons().add(new Image("https://example.com/javaicon.png")); 

在此处输入图像描述

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

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

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

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

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

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

public final ObservableList getIcons()

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

我找到的解决方案是将独立工作目录的属性设置为我的main和image所在的包。

别忘了import

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

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

对于那些遇到问题的人:

url无效:找不到无效的url或资源

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

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

我希望这有助于某人!