在構建這個應用程序時偶然遇到這個問題,現在真的阻礙了我們的功能。某些JavaFX佈局是否與Mac電腦不兼容?
Screen screen = Screen.getPrimary();
Rectangle2D bounds = screen.getVisualBounds();
overallStage.setX(bounds.getMinX());
overallStage.setY(bounds.getMinY());
overallStage.setWidth(bounds.getWidth());
overallStage.setHeight(bounds.getHeight());
這是允許在用戶登錄之後,屏幕的最大化:這個問題首先在我的其他開發人員(使用MAC)試圖運行應用程序時,我改變影響舞臺上的一行代碼開始。在mac用戶登錄後,舞臺將最小化爲左下角的一個小窗口,然後消失。現在有一件類似的事情正在發生,我做了一個新的添加。
我做了這個除了在應用程序中包含一個側面菜單。正如你所看到的,我將整個場景包裝在一個堆疊窗格中,然後用側邊菜單的外部錨點窗格將錨定窗格(參見層次結構)包裹起來。現在完全一樣的事情發生在兩個不同的Mac上最小化和消失的地方,Windows非常好。
有什麼東西導致我相信一些佈局和舞臺設置與Mac電腦兼容它後,我裹在主場景只發生一次,有沒有人遇到此問題或不知道如何解決它?
非常好的問題! – Milan
實際的佈局代碼是用Java編寫的,所以它應該做的任何系統(至少如果系統運行相同的JDK版本)同樣的事情。該'Screen' API('Screen.getPrimary()'和'screen.getVisualBounds()')顯然必須與本地系統進行通信,並可能做一些座標變換。你能記錄你在不同系統上屏幕邊界獲得的值嗎?每個系統運行哪個JDK版本?在Mac上,一些較早的JDK版本有將本地屏幕座標轉換爲JavaFX使用的座標系的錯誤。 –