[英]Replacing multiple controllers with one (JavaFX)
我使用 Gloun SceneBuilder 設計了幾個 GUI,這意味着每個 GUI 表單都有自己的控制器 例如:AddBookForm.fxml 將有 AddBookController.java
import javafx.fxml.FXML;
import javafx.scene.control.Button;
public class AddBookController {
@FXML
private Button btnAddBook;
@FXML
void AddBook(MouseEvent event) {
}
}
EditBookForm.fxml 將有 EditBookController
import javafx.fxml.FXML;
import javafx.scene.control.Button;
public class PleaseProvideControllerClassName {
@FXML
private Button btnEditBook;
@FXML
void editBook(MouseEvent event) {
}
}
所以我想將兩個 GUI 的控制器合二為一,一個我命名為 BookController(它將有 AddBook 和 EditBook 按鈕處理程序)所以所有的書籍事件都將進入一個控制器而不是單獨的控制器這可能嗎? 如果是這樣,怎么辦? \我看到它可能與 lambda 有關,但我真的不明白..
您可以簡單地將同一控制器設置為兩個fxml
文件1 :
一個.fxml
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.HBox?>
<HBox xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
<children>
<Button fx:id="buttonA" onAction="#buttonAClicked" text="A" textAlignment="CENTER" />
</children>
</HBox>
B.fxml文件
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.HBox?>
<HBox xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="src.tests.xml.Controller">
<children>
<Button fx:id="buttonB" onAction="#buttonBClicked" text="B" textAlignment="CENTER" />
</children>
</HBox>
Controller.java (兩者都使用)
import javafx.fxml.FXML;
import javafx.scene.control.Button;
public class Controller{
@FXML
private Button buttonA, buttonB;
public void buttonAClicked(){
System.out.println("Button A clicked");
}
public void buttonBClicked(){
System.out.println("Button B clicked");
}
}
fxml
使用不同的Controller
實例,因此它不是共享的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.