在我的java桌面项目中使用,[rxjavaswing]https://github.com/akarnokd/rxjavaswing,
[rxjava3版本]https://github.com/reactivex/rxjava,遵循petikoch给出的mvvm架构示例https://github.com/petikoch/java_mvvm_with_swing_and_rxjava_examples 能够轻松实现基于socket编程的应用程序。
现在我想为横向和纵向模式实现这个。有没有一种方法来实现这个类似下图的东西。如果是的话,
1) 如何将两个不同的视图示例传递到viewmodel(当方向更改时动态传递)。
2) 我还将视图对象传递给usecaseimpl以进行面板替换。这里我也需要通过两个不同的观点了。
提前谢谢。
代码:
View view = new View();
UsecaseImpl useCaseImpl = new UseCaseImpl(view, defaultValues);
ViewModel viewModel = new ViewModel();
Model model = new Model(useCaseImpl);
viewModel.connectTo(model);
view.bind(viewModel); <br>
另外,如何基于usecaseinpl中的事件在mvvm中实现下面的代码(目前所有视图都使用util common)
public static void switchChildPanel(JPanel jPanelParent, JPanel jPanelChild) {
if(jPanelChild.isShowing()) {
return;
}
jPanelParent.removeAll();
jPanelParent.add(jPanelChild);
jPanelParent.repaint();
jPanelParent.invalidate();
jPanelChild.setVisible(true);
}
1条答案
按热度按时间dfty9e191#
我可以通过创建和传递两个视图并用viewmodel绑定它们来解决这个问题。只有视图是不同的示例,其余的是相同的。