设为首页 加入收藏

TOP

JavaGUI种的事件处理及常用控件设计思路
2014-11-23 21:57:40 】 浏览:260
Tags:JavaGUI 事件 处理 常用 控件 设计 思路

  在监察者模式中存在两个对象,一个是[监察者Observer],一个是[被监察者Subject1],[被监察者Subject1]考试,大提示提供AttachObserver方法来给自己添加[监察者Observer],当被监察者的状态发生变化,比如updated的时候,被监察者需要通知监察者,然后监察者根据被监察者的通知来做对应的处理[GetState(),SetState()]
  2. Composite合成


  合成模式,简单来说就是个树,无论是树枝还是树叶都是树结点,树结点可以添加到树节点中从而组装成参天之树。
  3. Strategy策略模式


  策略模式中的主题是[Context环境],我们可以告诉环境使用不同的策略,从而达到不同的效果。Java中最典型的例子就是LayoutManager,JPanel就是环境,不同的布局管理器就是我们的具体策略,我们可以告诉JPanel我要使用什么布局策略,比如BorderLayout从而达到不同的布局效果。
  4. MVC架构
  M:1。提供数据存储功能
  2.通知V数据变更事件
  V:1。负责显示
  2.接收用户请求
  3.接收C的更新请求并更新
  C:1。接收V处发来的客户请求
  2.通知M状态变更
  3.通知V状态变更
  其中,M,V,C的每一部分,已经M,V,C之间通常采用上面3种设计模式来进行关联。
  5.Adapter适配器模式


  相当于中间件,为不兼容的两个接口之间提供通信的可能。
  Java中的事件处理采用的是监察者模式与适配器模式相结合的设计方法。
  其中,被监察者,是各种控件,button,jpanel等等都是被监察者,他们都提供了addXXXListener()方法来供我们添加监察者。
  Java里面的监察者不叫做Observer,而是叫做Listener,也许叫做监听者更恰当。Java里面提供了监听者接口XXXListener。我们要做的就是实现这个接口,然后针对不同的事件来做对应的处理。
  Java里面的监听者接口有的时候需要监听很多事件,但是可能我们只对其中的某一个或是某几个事件感兴趣,这种时候,Java采用了Adapter模式,提供了一个XXXAdapter的类,这个类实现监听者接口并提供所有事件的默认实现―其实就是什么都不做。这样我们可以继承XXXAdapter来只处理我们感兴趣的事件。
  Java中的高级控件,JTable,JText,JTree采用了MVC的架构。
  V:通常Java的高级控件中有两个对应的类来控制视图的显示。XXXRenderer,XXXEditor,前者对应通常状态下的显示效果,后者对应编辑状态下的显示效果。如果默认显示效果不能满足你的要求,那么去查找一下看看有没有对应的Renderer,Editor可以设定修改吧。这里各种Renderer,Editor就是各种不同的显示策略,对,采用了策略模式。
  M:Java的高级控件中通过XXXModel来控制数据的存取,当我们需要对数据进行一些处理,在默认处理上进行一些变更,除了默认的数据还需要保存另外一些数据的话,那么我们需要考虑修改变更XXXModel。这里JTree就采用了合成模式。
  C:采用的是Java中的事件处理机制,C对应的是我们的监听者,各种的XXXListener。同时,这些高级控件本身也相当于C,提供一些基本的控制功能。并且将MVC各个模块儿,组装起来,提供一个平台的功能。
  这里JText系列个其它的高级控件的情况稍稍有点不同,JText系列控件的主体实际上并不是JTextXXX本身,而是Document类,JTextXXX提供的是一个现实的功能,把Document当作JTable同性质的角色来看的话,其他的整体设计思路差别不大。
  恩,基本就是这样,当然实际使用起来会遇到很多麻烦,笑着这一系列的文章只提供渔网,呵呵。提供一个具体某一种问题的解决思路,方向。具体要如何解决,还是要靠多多实践。有时间的时候笑着也会总结一些常见的问题出来。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇二级考试JAVA技巧(Eex下拉树例子) 下一篇Java里面去掉网页里的HTML标记的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目