Preface
Q:为什么有此文?
A:其他人写的文章不是很具体,没有一针见血的感觉,故有此文
原理
通过一个
<fx:include>
属性,然后用MainController
类来传递Controller类,以达到传输与定位的目的(具体请看源码)还有一个非常大!!!大的坑!!,请看
MainController类
源码中的注释(如果名字不正确就一定会NPE
)
实际效果
源码
项目结构
.
├── java
│ ├── controller
│ │ ├── MainController.java
│ │ ├── Part1Controller.java
│ │ └── Part2Controller.java
│ └── Main.java
└── resources
├── main.fxml
├── part1.fxml
└── part2.fxml
PS:此项目中使用了JFeonix库;如果有希望我替换成原生的库的请留言。
具体源码
java
Main.java
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));
primaryStage.setTitle("JFeonix Test Example");
primaryStage.setScene(new Scene(root, 600, 400));
primaryStage.show();
}