java swing 复杂界面 事件处理方式,该如何处理
java swing 复杂界面 事件处理方式
有个问题请大家帮助:
类似Eclipse这样复杂的java图形应用程序,它的事件监听结构该如何设置?
例如MenuBar有自己的独立的监听对象类,如果进行新建项目操作,则会在主界面项目树中添加一个项目,需要将主界面对象传到MenuBar有自己的独立的监听对象类进行处理吗?
可能上面描述的不太清楚,如果一个复杂的图形界面,里面有很多的控件,各控件都注册有各自的事件监听对象,但是A控件的事件需要改变B、C、D等控件的状态或动作,那么遇到这样的问题该如何处理?
谢谢大家!
------解决方案--------------------
参考Mediator模式,通过一个中间层进行通讯。
------解决方案--------------------
直接调用B,C,D对象的方法或属性不可以?
------解决方案--------------------
我感觉c很强大,java写窗体,不建议。但是你既然用到了,就给你说一下。
A控件的事件需要改变B、C、D等控件的状态或动作。可以做到的,可以根据控件的id,改变B、C、D的状态,或者触发B、C、D的事件
------解决方案--------------------
都是对象,对象间的关系包括组合、并列等。
组织好它们的关系是关键,然后保证它们之间的正常通信。
无论C++,Java,一样的
------解决方案--------------------
如果是一个复杂或者大型的程序,不推荐直接调用对方。
方案:组件间用通知中心通讯
1. 组件在通知中心注册感兴趣的事件。
2. 组件的状态改变后告知通知中心你的状态已经改变及改变后的数据
3. 通知中心查找对此事件感兴趣的组件,然后调用它的方法。
这个就是Mediator模式和观察者模式的应用,很多框架里都是这么做的,可以参考Cocoa编程的NSNotificationCenter的机制也是这么做的。
------解决方案--------------------
很容易的,基于责任链模式,很容易搞定!
------解决方案--------------------
用Annotations 和消息总线
有个问题请大家帮助:
类似Eclipse这样复杂的java图形应用程序,它的事件监听结构该如何设置?
例如MenuBar有自己的独立的监听对象类,如果进行新建项目操作,则会在主界面项目树中添加一个项目,需要将主界面对象传到MenuBar有自己的独立的监听对象类进行处理吗?
可能上面描述的不太清楚,如果一个复杂的图形界面,里面有很多的控件,各控件都注册有各自的事件监听对象,但是A控件的事件需要改变B、C、D等控件的状态或动作,那么遇到这样的问题该如何处理?
谢谢大家!
------解决方案--------------------
参考Mediator模式,通过一个中间层进行通讯。
------解决方案--------------------
直接调用B,C,D对象的方法或属性不可以?
------解决方案--------------------
我感觉c很强大,java写窗体,不建议。但是你既然用到了,就给你说一下。
A控件的事件需要改变B、C、D等控件的状态或动作。可以做到的,可以根据控件的id,改变B、C、D的状态,或者触发B、C、D的事件
------解决方案--------------------
都是对象,对象间的关系包括组合、并列等。
组织好它们的关系是关键,然后保证它们之间的正常通信。
无论C++,Java,一样的
------解决方案--------------------
如果是一个复杂或者大型的程序,不推荐直接调用对方。
方案:组件间用通知中心通讯
1. 组件在通知中心注册感兴趣的事件。
2. 组件的状态改变后告知通知中心你的状态已经改变及改变后的数据
3. 通知中心查找对此事件感兴趣的组件,然后调用它的方法。
这个就是Mediator模式和观察者模式的应用,很多框架里都是这么做的,可以参考Cocoa编程的NSNotificationCenter的机制也是这么做的。
------解决方案--------------------
很容易的,基于责任链模式,很容易搞定!
------解决方案--------------------
用Annotations 和消息总线