Swing的事件模型的优点就在于它的灵活性。你可以调用方法给组件添加或删除事件。今天再看这一节时,想到了一个以前没想过的小问题,如果一个按钮先后注册了两个监听者Listerner1, Listerner2,那么在单击按钮时,事件处理的顺序到底是如何的哪?真的是我以前一直以为的两者构成了一个监听者链表,Listerner2接在Listerner1后面吗?那就是说Listerner1会先处理接收的事件哪?真的是这样吗?


《Java编程思想》读书笔记(11)package com.vitamin.UI;
《Java编程思想》读书笔记(11)
import java.awt.BorderLayout;
《Java编程思想》读书笔记(11)
import java.awt.Container;
《Java编程思想》读书笔记(11)
import java.awt.event.ActionEvent;
《Java编程思想》读书笔记(11)
import java.awt.event.ActionListener;
《Java编程思想》读书笔记(11)
《Java编程思想》读书笔记(11)
import com.vitamin.*;
《Java编程思想》读书笔记(11)
import com.vitamin.Console.console;
《Java编程思想》读书笔记(11)
import java.awt.*;
《Java编程思想》读书笔记(11)
import javax.swing.*;
《Java编程思想》读书笔记(11)
《Java编程思想》读书笔记(11)
public class HelloTest extends JFrame


运行后居然发现” L2接收到事件先发生了,因为lbInfoText是空的。汗。。。

将业务逻辑(business logic)与用户界面分离开来

一般情况下,设计类的时候总是强调一个类"只作一件事情"。涉及用户界面的时候更是如此,因为你很可能会把"要作什么"同"要怎样显示"给混在一起了。这种耦合严重妨碍了代码的复用。比较好的做法是将"业务逻辑(business login)"同GUI分离开来。这样不仅方便了业务逻辑代码的复用,也简化了GUI的复用。

还有一种情况,就是多层系统(multitiered systems),也就是说”业务对象(business object)"完全贮存在另一台机器上。业务规则的集中管理能使规则的更新立即对新交易生效,因此这是这类系统所追求的目标。但是很多应用程序都会用到这些业务对象,所以它们绝不能同特定的显示模式连在一起。它们应该只做业务处理,别的什么都不管.

《Java编程思想》读书笔记(11)import javax.swing.*;
《Java编程思想》读书笔记(11)
import java.awt.*;
《Java编程思想》读书笔记(11)
import javax.swing.event.*;
《Java编程思想》读书笔记(11)
import java.awt.event.*;
《Java编程思想》读书笔记(11)
import java.applet.*;
《Java编程思想》读书笔记(11)
import com.vitamin.Console.*;
}

相关文章:

  • 2021-10-26
  • 2021-11-07
  • 2022-01-26
  • 2021-08-06
  • 2022-01-11
  • 2021-06-13
猜你喜欢
  • 2021-12-15
  • 2021-05-18
  • 2021-08-08
  • 2021-07-28
  • 2021-06-28
相关资源
相似解决方案