在我看来,处理javafx中控制器类内部的事件很难,特别是当要处理的事件数量增加时。我试图将事件处理与Controller类分开。例如在复杂的应用程序中,事件是如何管理?
所以,让我们举个例子:
view.fxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button layoutX="233.0" layoutY="175.0" mnemonicParsing="false" onAction="#button1Clicked" text="Button1" />
<Button layoutX="233.0" layoutY="225.0" mnemonicParsing="false" onAction="#button2Clicked" text="Button2" />
<Button layoutX="233.0" layoutY="279.0" mnemonicParsing="false" onAction="#button3Clicked" text="Button3" />
</children>
</AnchorPane>
控制器类:
public class AccountController implements Initializable {
@FXML
private Button button1;
@FXML
private Button button2;
@FXML
private Button button3;
private boolean formSaved ;
private boolean formUpdated ;
public void initialize(URL location, ResourceBundle resources) {
}
// Event handling
@FXML
public button1Clicked(){
// Handle button 1 clicked
}
@FXML
public button2Clicked(){
// Handle button 2 clicked
}
@FXML
public button3Clicked(){
// Handle button 3 clicked
}
}
我需要在控制器类中移动逻辑button1Clicked()... 并把它放在另一个类中,例如:
public class eventManager {
// form state
// Event handling ..etc
}
任何想法,javafx框架,设计模式......等等。 或者你是否建议将所有东西都放在控制器类中? 复杂应用程序中事件处理的最佳实践是什么?