我想跨越整個窗口寬度有一個TilePane
。當設置我的Stage
,Scene
和TilePane
窗口沒有任何特定的設置時,這按預期工作。即使我的屏幕只有9個區塊足夠寬,我也設置了tilePane.setPrefColumns(100)
。我沒有爲舞臺手動設置任何尺寸。JavaFX:在切換場景時使TilePane使用全窗口寬度
當我的應用程序啓動時,場景首先設置爲寬度1,然後是320,然後是1920(當在1920x1080屏幕上啓動時)。我正在運行XMonad(平鋪窗口管理器),在顯示窗口全屏之前可能會導致320之間的寬度。
但是,在切換到另一個場景(stage.setScene
)後再切換回來 - 重新使用舊場景或使用最初使用的相同代碼構建新場景 - 首選寬度爲TilePane
(超過1920 )用於設置場景和舞臺的寬度。因此,上面提到的100
列是「顯示」的,儘管屏幕只有9列足夠寬。
手動調整窗口大小時,所有內容都會「捕捉」回預期值(即我的情況下爲1920)。
我怎樣才能確保(再)附加到一個舞臺的場景以屏幕的寬度呈現?我怎樣才能觸發假的「窗口大小調整」事件?我如何使場景/窗格寬度取決於舞臺寬度而不是其他方式?
我更喜歡也可以在多屏幕設置中使用的解決方案。
'GraphicsEnvironment.getLocalGraphicsEnvironment()getDefaultScreenDevice();'拋出'HeadlessException',即使' stage.show()'(不改變場景)。 –
這應該工作正常,我已經使用了特定的代碼行。試試這個Dimension ScreenSize = Toolkit.getDefaultToolkit()。getScreenSize();'用'screenSize'代替'gd'。 –