我正在尝试为一个复杂的gui构建一个骨架,因此我的想法是在javafx 2.1中使用mvc样式创建所有内容,因此每个组件都有一个fxml文件,如果需要css,controller和model.我试着弄清楚如何改变子场景(运行时的子fxml).有谁知道怎么做?我有点坚持这个.可以添加MainViewController吗?场景:用户点击任务栏中的按钮,包含的content1.fxml将替换为content2.fxml
这里是基本代码
MainApp.java
Loads the MainView.fxml
Run Code Online (Sandbox Code Playgroud)
MainView.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane xmlns:fx="http://javafx.com/fxml">
<center>
<fx:include source="Content1.fxml"/>
</center>
<bottom>
<fx:include source="TaskBar.fxml"/>
</bottom>
</BorderPane>
Run Code Online (Sandbox Code Playgroud)
Content1.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<StackPane xmlns:fx="http://javafx.com/fxml" fx:id="content1">
<Label text="Hallo Java FX 2.1.1 Content1.fxml"/>
</StackPane>
Run Code Online (Sandbox Code Playgroud)
Content2.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<StackPane xmlns:fx="http://javafx.com/fxml" fx:id="content2">
<Label text="Hallo Java FX 2.1.1 Content2.fxml"/>
</StackPane>
Run Code Online (Sandbox Code Playgroud)
TaskBar.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<HBox xmlns:fx="http://javafx.com/fxml" spacing="10" alignment="center"
fx:id="taskBar" fx:controller="TaskBarController">
<children>
<Button fx:id="taskBarButton1" onAction="#handleTaskBarButton1Action"/>
<Button fx:id="taskBarButton2" onAction="#handleTaskBarButton2Action"/>
</children>
</HBox>
Run Code Online (Sandbox Code Playgroud)
TaskBarController.java
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent; …
Run Code Online (Sandbox Code Playgroud)