您可以(有點)在FXML中完成此操作,但不能在Scene Builder中完成(據我所知)。您可以使用fx:factory
屬性來獲取主屏幕並將其定義爲<fx:define>
block。然後使用expression binding將根窗格的prefWidth
和prefHeight
綁定到屏幕的寬度和高度。
這看起來像
MaximizedPane.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.control.Label?>
<?import javafx.stage.Screen?>
<StackPane xmlns:fx="http://javafx.com/fxml/1"
prefWidth="${screen.visualBounds.width}"
prefHeight="${screen.visualBounds.height}" >
<fx:define>
<Screen fx:factory="getPrimary" fx:id="screen"/>
</fx:define>
<Label text="A maximized pane"/>
</StackPane>
這裏有一個快速的測試工具:
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MaximizedFXMLPane extends Application {
@Override
public void start(Stage primaryStage) throws IOException {
Scene scene = new Scene(FXMLLoader.load(getClass().getResource("MaximizedPane.fxml")));
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
(原因沒有辦法與場景生成器來做到這一點的是,它不支持在您的FXML中插入<fx:define>
塊的任何機制,等等。)
感謝您的回答 –
如果回答您的問題,請標記爲正確答案:這將使其他用戶更容易找到他們是否需要相同的信息。 –
我沒有足夠的信譽來標記答案正確 –