[英]JavaFX - Issue when including another fxml to a border pane center of a main fxml
我正在嘗試在主fxml(邊框窗格中心)中包含其他fxml。 當我這樣做時,fxml被包括在內並顯示在中央,但是fxml不會占據fxml主窗口的全部寬度和高度。
在SceneBuilder中,如果我在邊框窗格的中央添加TableView,它將按應有的作用。 只有當我通過代碼包含fxml時,才不會。
請幫忙,我想念什么? 任何幫助將不勝感激!
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.effect.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <TabPane fx:id="TabPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1300.0" tabClosingPolicy="UNAVAILABLE" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <tabs> <Tab fx:id="lecturersTab" closable="false" text="Lecturers"> <content> <BorderPane prefHeight="200.0" prefWidth="200.0"> <center> <TableView prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <columns> <TableColumn prefWidth="75.0" text="C1" /> <TableColumn prefWidth="75.0" text="C2" /> </columns> </TableView> </center> </BorderPane> </content> </Tab> <Tab fx:id="membersTab" closable="false" text="Members"> <content> <BorderPane prefHeight="200.0" prefWidth="200.0"> <center> <fx:include fx:id="memberPage" source="GUImembers.fxml"/> </center> </BorderPane> </content> </Tab> </tabs> </TabPane>
我要添加的FXML:
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <BorderPane fx:id="memberPage" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1300.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="GUImembersController"> <center> <TableView BorderPane.alignment="CENTER"> <columns> <TableColumn prefWidth="75.0" text="C1" /> <TableColumn prefWidth="75.0" text="C2" /> </columns> </TableView> </center> </BorderPane>
主要:
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MainClass extends Application
{
public FXMLLoader loader;
public static void main(String[] args)
{
launch(args);
}
public void start(Stage stage) throws Exception
{
loader = new FXMLLoader();
loader.setLocation(getClass().getResource("FXML/GUImain.fxml"));
loader.setController(new GUImainController());
Parent root = loader.load();
Scene scene = new Scene(root);
stage.setTitle("VIA - Event Management System");
stage.setScene(scene);
stage.show();
}
}
最終,經過長時間與java fx的斗爭,我得到了解決方案,這很簡單。 由於這個問題: JavaFX Borderpane沒有左,右子級
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.