java – 模型视图Presenter和复合视图
发布时间:2020-05-24 23:35:06 所属栏目:Java 来源:互联网
导读:我试图在 java swing ui应用程序中遵循MVP(特别是Passive-View)模式. 应用程序的基本设计提醒向导控件.屏幕分为两个主要部分: 积极的观点. 一个静态导航栏,带有导航按钮. 用户可以使用按钮更改活动视图,但始终显示该栏. 在这个场景建模中,我有一堆不同的scre
|
我试图在 java swing ui应用程序中遵循MVP(特别是Passive-View)模式. 应用程序的基本设计提醒向导控件.屏幕分为两个主要部分: >积极的观点. 用户可以使用按钮更改活动视图,但始终显示该栏. 在这个场景建模中,我有一堆不同的screers,每个都有它自己的演示者,视图界面和视图实现(使用JPanel).然后我有一个Shell演示者,使用JFrame查看intefrace和视图实现.我们的想法是shell将首先加载并始终显示,显示底部导航栏并为活动视图留出空间. shell演示者将允许设置当前活动屏幕,有点像这样: interface View {
}
class Presenter {
View view;
public Presenter(View view) {
this.view = view;
}
public View getView() {
return view;
}
}
interface ShellView extends View {
void setActiveView(View activeView);
}
class ShellPresenter extends Presenter {
private ShellView shellView;
public void setActivePresenter(Presenter activePresenter) {
shellView.setActiveView(activePresenter.getView());
}
}
class ShellFrame implements ShellView {
private JFrame frame;
private JPanel activePanel;
private JPanel navigationBar;
public ShellFrame() {
Container c = frame.getContentPane();
c.add(activePanel);
c.add(navigationBar);
}
public setActiveView(View activeView) {
???
}
}
问题出在setActiveView方法中:我不确定如何将activeView设置为activePanel,当View界面是一般的时候,因此对JPanels一无所知.显然,我不希望我的演示者也知道JPanels. 解决方法你能否修改View的定义:interface View {
JComponent getContainer();
}
这样每个视图都可以轻松获取视图内容? shell不需要知道返回JComponent的实现. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 在运行时创建swing组件
- 如果您在Java中显式初始化Object数组,那么包含与新的Object
- java – 线程之间的可见性是否需要AtomicReference?
- java – 在Intellij中,为什么我要在本地运行Google App Eng
- 如何避免java中的许多try catch块
- Java concurrency之Condition条件_动力节点Java学院整理
- java – Spring Batch Reader的游标在JTA事务管理步骤初期关
- java – Hibernate Cascading Delete不按预期工作
- java – 访问日志中的奇怪请求导致IllegalArgumentExceptio
- Java – 使用带有JAX-WS的动态客户端的优点
