JavaFX - 所有屏幕分辨率的正确图标大小

时间:2015-04-28 15:51:53

标签: javafx icons resolution

如何根据可用的屏幕分辨率设置JavaFX应用程序中图标的大小。

此时我手动设置尺寸,但是对于低分辨率,它们要大,而对于高分辨率,它们要小。

编辑:

我认为最好的方法是在屏幕分辨率类别的不同css文件之间进行选择。这可以用JavaFX吗?

1 个答案:

答案 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));