这应该是一个相当简单的问题,但我似乎无法在互联网上找到一个好的答案。
我一直在研究Java FX,我发现它很有趣,虽然我很难满足于如何设法将逻辑与我的程序的表示分开。
注意:此可能可能重复
Javafx 2.0 How-to Application.getParameters() in a Controller.java file
然而,在接受的答案中的建议是使变量静态,我也不希望这样做。
我发现的所有教程都有一个控制器,它应该是演示文稿和good'ol MVC方式逻辑之间的连接。然而,在这里,我发现自己陷入困境,因为我不想初始化一些东西,在这种情况下不重要的东西,并将其传递给我的控制器。
我是否应该将内容传递给我的控制器,还是应该负责初始化(通过自身或通过实例化另一个具有该责任的对象)?
我想在 Java FX 中将内容传递给我的控制器,我应该这样做还是不好的做法?如果我应该传递东西,我该怎么做?
主要课程
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("ChatGUI.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
示例控制器(带注释)
@Override
public void initialize(URL url, ResourceBundle rb) {
//Intialize a bunch of stuff here.
connectionManager = new MyConnectionManager();
}
以及我想做的事情:
主要课程
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("ChatGUI.fxml"));
MyConnectionManager connectionManager = new MyConnectionManager();
root.addConnectionManager(connectionManager);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
示例控制器(带注释)
@Override
public void initialize(URL url, ResourceBundle rb) {
//Intialize a bunch of stuff here.
connectionManager = new MyConnectionManager();
}
public void addConnectionManager(ConnectionManager manager) {
this->myManager = manager;
}
我想实现类似于上面第二个例子的东西,这是可能的还是我对MVC模式有一些基本的误解?