JavaFX在两个控制器之间正确共享数据(模型)

时间:2018-01-23 16:53:42

标签: java model-view-controller javafx

好吧,我一直在阅读很多有关如何正确创建JavaFX应用程序的stackoverflow帖子,其中有两个窗口在它们之间共享数据我找不到任何明确的解决方案。这是我目前的解决方案,基本上创建了对其他控制器的引用,这是非常糟糕的做法。

创建两个控制器之间共享的模型是不错的做法?如果是这样,当他们没有任何构造函数时,如何将Model对象注入控制器?

public class ControllerOne implements Initializable {

     @FXML private TextField textField;

     @Override
     public void initialize(URL url, ResourceBundle rb) {

     }        


    @FXML    
    private void handleButtonAction(ActionEvent event) {

        if(textField.getText().equals("")){

        }
        else{
            System.out.println(textField.getText());
            String itemNumber = textField.getText();

            Main.getControllerTwo().setLabel(itemNumber);        
            textField.setText("");
            textField.requestFocus();
        }

    }  
}

第二个窗口

public class ControllerTwo implements Initializable {
    @FXML 
    private Label itemLabel;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        // TODO Auto-generated method stub

    }



    public void setLabel(String itemNumber){
        itemLabel.setText(itemNumber);
    }

    public Label getLabel(){
        return itemLabel;
    }



}

0 个答案:

没有答案