在研究了很多帖子并尝试了所有内容之后,我自己完成了一项任务,就像使用eclipse IDE和Java FX 2在标题栏上设置一个图标一样简单。
它会显示默认的空窗口图标或返回黑色。请让我知道我做错了什么。
以下是我的一些尝试,
//Image ico = new Image(UI.class.getResourceAsStream("Sunset.jpg"), 16, 16, true,true);
//Image ico = new Image("Sunset.jpg", true);// looks inside src folder
//primaryStage.getIcons().add(new Image(UI.class.getResourceAsStream("/title.jpeg")));
//primaryStage.getIcons().add(new Image(UI.class.getResourceAsStream("title.jpeg")));
Image ico = new Image(UI.class.getResourceAsStream("Sunset.jpg"));
primaryStage.getIcons().add(ico);
我已尝试使用我一直使用的照片,
请让我知道,我怎么能克服这一点。 谢谢!
系统详情:
java.runtime.version - 1.7.0_11-b21
javafx.runtime.version - 2.2.4-b19
操作系统名称 - MS Win XP Professional
操作系统版本 - 5.1.2600 Service Pack 3 Build 2600
操作系统架构 - 32位
显卡 - 英特尔®高清显卡
显卡驱动程序 - igxpmp32.sys版本6.14.10.5384
答案 0 :(得分:3)
原因似乎是JavaFx中的潜在错误。如果您的系统设置为32位以下的任何颜色,您将获得任务栏和标题栏图标的黑框。将系统设置为32位颜色将修复它。
答案 1 :(得分:1)
以下适用于我:
Image image = new Image(<some valid image location here>);
stage.getIcons().setAll(image);
以下是一个示例应用:
import static javafx.application.Application.launch;
import javafx.application.*;
import javafx.scene.Scene;
import javafx.scene.image.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class IconApp extends Application {
@Override public void start(Stage stage) {
Image image = new Image(
"http://icons.iconarchive.com/icons/tooschee/misc/128/Present-icon.png"
);
stage.getIcons().setAll(image);
final VBox layout = new VBox(10);
layout.setStyle("-fx-background-color: cornsilk; -fx-padding: 10;");
layout.getChildren().setAll(new ImageView(image));
stage.setScene(new Scene(layout));
stage.show();
}
public static void main(String[] args) { launch(args); }
}
// icon license (creative commons 3 with attribution):
// http://creativecommons.org/licenses/by-nc/3.0/
// icon attribution:
// http://tooschee.com/portfolio?worksCategory=icons
应用程序的输出(您可以在标题栏的左上角看到舞台图标):
该图标也显示在操作系统任务栏中:
测试系统是Windows 7,Java 8b77。
答案 2 :(得分:0)
如果您将显示器置于16位操作模式,即使在Windows 7上也可以重现此错误: 屏幕分辨率 - &gt;高级设置 - &gt;监视器(标签) - &gt;颜色= 16位
似乎这个问题已填入JavaFX跟踪器: 来自另一个答案的Joe S. https://javafx-jira.kenai.com/browse/RT-28947,但我不打算在JDK8中修复它。