【发布时间】:2017-02-10 20:26:28
【问题描述】:
我想要一个跨越整个窗口宽度的TilePane。在没有任何特定设置的情况下设置我的Stage、Scene 和TilePane 窗口时,这将按预期工作。即使我设置tilePane.setPrefColumns(100) 时也是这种情况,即使我的屏幕宽度仅足以容纳 9 个图块。我没有手动为舞台设置任何大小。
当我的应用程序启动时,场景首先设置为宽度 1,然后是 320,然后是 1920(在 1920x1080 屏幕上启动时)。我正在运行 XMonad(平铺窗口管理器),这可能会导致窗口全屏显示之前的宽度为 320。
但是,在切换到另一个场景 (stage.setScene) 并再次切换回来后 - 重新使用旧场景或使用最初使用的相同代码构建新场景 - TilePane 的首选宽度(方式超过1920)用于设置场景和舞台的宽度。因此,上面提到的100 列是“显示的”,尽管屏幕的宽度仅足以容纳 9 列。
当手动调整窗口大小时,一切都会“迅速”恢复到预期值(在我的例子中是 1920)。
如何确保(重新)附加到舞台的场景以屏幕宽度呈现?如何触发虚假的“窗口大小调整”事件?如何使场景/窗格宽度取决于舞台宽度而不是相反?
我更喜欢也适用于多屏幕设置的解决方案。
【问题讨论】:
标签: java user-interface javafx javafx-8