好吧,我一直在阅读很多有关如何正确创建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;
}
}