簡體   English   中英

JavaFX將事件處理與控制器類分開

[英]JavaFX separating event handling from controller class

我認為在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框架,設計模式等等。 還是您要求將所有內容放入控制器類中? 在復雜應用程序中處理事件的最佳做法是什么?

例如,您可以在此博客文章JavaFx Layers中看到各層的外觀

它是基於設計模式的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM