我试过了
stage.getIcons().add(new Image("attuncore.jpg"));
但我不知道出了什么问题......
请帮忙。提前谢谢。
答案 0 :(得分:48)
初学者的完整程序:)此程序设置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"));
OR
stage.getIcons().add(new Image("https://example.com/javaicon.png"));
希望它有所帮助。谢谢!
答案 1 :(得分:5)
您可以像这样从类路径加载图像:
new Image(XYZ.class.getResourceAsStream("/xyz.png"))
其中XYZ是某个类名(可能是您正在加载图像的名称),xyz.png是图像文件的名称,放在类路径中包含的目录(或JAR文件)中。
如果您想将图像放在源文件旁边,则必须省略/字符。您的IDE需要配置为将资源(如* .png)从src复制到bin目录,然后。但这应该是标准行为。
答案 2 :(得分:1)
您的图片尺寸是否正确? Javadoc说:
public final ObservableList getIcons()
获取要在窗口装饰中使用的图标图像以及何时使用 最小化。图像应该是相同图像的不同大小 将选择最佳尺寸,例如。 16x16,32,32。
答案 3 :(得分:1)
我找到的解决方案是将独立工作目录的属性设置为我的main和image所在的包。
答案 4 :(得分:1)
别忘了进行导入
import javafx.scene.image.Image;
Image icon = new Image(getClass().getResourceAsStream("myicon.png"));
stage.getIcons().add(icon);
将"myicon.png"
替换为您的图标。在这种情况下,它与您的java类位于同一文件夹中。
答案 5 :(得分:1)
对于那些遇到问题的人:
网址无效:找不到无效的网址或资源
最好的解决方案是制作新的包,即image.icons,并移动你的.png图像。然后你只需要写:
Image image = new Image("/image/icons/list.png");
primaryStage.getIcons().add(image);
我希望这有助于某人!