猿问

Fxml 需要获得与它所在的 fxml 相同的控制器

我有一个用 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());


交互式爱情
浏览 152回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答