如何根据可用的屏幕分辨率设置JavaFX应用程序中图标的大小。
此时我手动设置尺寸,但是对于低分辨率,它们要大,而对于高分辨率,它们要小。
编辑:
我认为最好的方法是在屏幕分辨率类别的不同css文件之间进行选择。这可以用JavaFX吗?
答案 0 :(得分:0)
你可以在你的fx应用程序启动时获得解决方案(如下所示):
Rectangle2D targetScreenBounds = Screen.getPrimary().getBounds()
然后在你的图标Control
实例中相应地设置prefWidth和prefHeight(使用每比率逻辑),如果它确实是你正在谈论的javafx节点。
编辑:关于动态屏幕分辨率更改:您无法向屏幕的分辨率更改AFAIK显式添加侦听器。但是,您可以向主舞台背景添加侦听器。它的宽度和高度属性很可能会根据屏幕的分辨率变化调整大小,但必须在目标操作系统上进行测试。如果您需要一个图标大小为舞台高度的1/20,您可以这样做:
Stage stage = ... //this is your app main stage
Glyph glyph = ... //this is your Icon, here it is for example from org.controlsfx.glyphfont
glyph.prefWidthProperty().bind(stage.heightProperty().divide(20));
glyph.prefHeightProperty().bind(stage.heightProperty().divide(20));