这有点奇怪,或者我的代码有问题。
我正在设置JavaFX应用程序ICON,这在Windows系统上是非常明显的,而在Ubuntu上是不可见的。
在Windows上:
在Ubuntu上:
任何想法背后的原因。
代码示例:
@Override public void start(Stage stage) throws Exception { try { setUserAgentStylesheet(STYLESHEET_MODENA); FXMLLoader loader = new FXMLLoader(); Parent root = (Parent) loader.load(getClass().getResourceAsStream("ui/ParentWindow.fxml")); final ParentWindowController controller = (ParentWindowController) loader.getController(); stage.addEventHandler(WindowEvent.WINDOW_SHOWN, controller::handleWindowShownEvent); stage.addEventHandler(WindowEvent.WINDOW_SHOWING, controller::handleWindowShowingEvent); stage.addEventHandler(WindowEvent.WINDOW_CLOSE_REQUEST, controller::handleWindowClosingRequestedEvent); Scene scene = new Scene(root); scene.getStylesheets().setAll( getClass().getResource("ui/css/ParentWindow.css").toExternalForm() ); stage.setScene(scene); stage.initStyle(StageStyle.UNIFIED); stage.setResizable(false); stage.toFront(); stage.setTitle("Simple JavaFX Tool"); stage.getIcons().add(new Image(getClass().getResourceAsStream("resources/images/icon.jpg"))); stage.show(); } catch (IOException iOException) { iOException.printStackTrace(); } }
对于寻求解决方案的人来说,这是JDK问题追踪器中的一个悬而未决的问题。
Gtk:实现全球系统菜单栏的支持
根据JavaFX开发者对类似问题的评论:
Glass / FX目前不支持GTK(RT-28202)上的全局菜单栏。 因此,Glass不会设置任何应用程序范围的提示来指定应用程序名称或应用程序图标。 桌面环境必须自己猜测(可能使用窗口的标题和图标)。 因此,“应用程序窗口”(上面#1)应该始终显示正确的标题是正确的,而其他三个地方可能会或可能不会显示正确的标题取决于时间。 在RT-28202实施之前,这是不太可能改变的。
在JavaFX问题与JDK问题合并之前,RT-28202是上述链接问题的问题ID。
这个问题没有票数太少,所以没有引起太大兴趣。 如果您注册为投稿人,请随时为该问题投票。