我有一个用 fxml 编写的边界窗格,它的左窗格和中心窗格具有可互换的布局。
边框 fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.image.*?>
<?import java.net.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.text.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane fx:id="mainBorderPane" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Program.gui.MainSceneController">
<left>
<ScrollPane fitToWidth="true" BorderPane.alignment="CENTER">
<content>
<VBox id="sideMenu" spacing="10.0" styleClass="side-menu">
<children>
<Button fx:id="buttonCash" contentDisplay="TOP" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#buttonCashPress" styleClass="side-menu-button" text="Cash">
<cursor>
<Cursor fx:constant="HAND" />
</cursor>
<graphic>
<ImageView fitHeight="50.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../../Libraries/Icons/pos.png" />
</image>
</ImageView>
</graphic></Button>
在 fxml 文件中找到的按钮之一将在控制器中运行一些代码,以使用从另一个 fxml 文件加载的 VBox 更改边框的右侧。
现在的问题是如何告诉右窗格的 fxml 使用与主边框相同的控制器?换句话说,我想继承控制器。
如果我在它的 fxml 中定义控制器,fx:controller="Program.gui.MainSceneController"它只是创建一个新实例,如果我不定义它,它只会给出错误,因为它里面的按钮没有控制器可以引用。
编辑:有人要求更改屏幕右侧的代码是:(注意:这是在控制器中找到的)
//mainBorderPane is gotten from the main fxml file.
FXMLLoader loader = new FXMLLoader(getClass().getResource("cashRightArea.fxml"));
mainBorderPane.setRight(loader.load());
相关分类