|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。任什么时候候,按下键盘或鼠标的键就发生了事务。组件承受和处置事务的体例自JDK1.1以来都坚持稳定。Swing组件可以发生很多分歧种别的事务,包含那些在java.awt.event包和在javax.swing.event包中的事务。Swing新引进的那些事务种别常常是与特定Swing组件相干的。每个事务种别都是一个对象,它最少指了然事务的产生源,常常还带有别的动静,如该事务的种别、在事务产生前和产生后事务源形态的变更,等等。事务源年夜部分是一般的组件或模子(models,即MVC中的M,在今后的blog中大概会先容Swing组件的MVC布局)。别的的对象也大概发生事务。
要想收到事务发生的关照,我们必要在方针对象上注册事务监听器。事务监听器是恣意XXListener类或接口的详细完成(XX代指事务的范例)。XXListener是界说在java.awt.event、java.beans和javax.swing.event包中的类或接口。在每一个接口中最少界说了一个办法(method),该办法以对应的XXEvent作为参数。撑持发送XXEvent事务产生关照的类都须完成XXListener接口,同时供应响应的addXXListener()和removeXXListener()办法来注册和移除这些事务监听器,年夜部分的事务方针对象(target)都同意注册恣意多个事务监听器。一般撑持XXEvent的类都供应受回护的办法(protectedmethod)fireXX()来机关事务对象及将它送至事务处置器(eventhandler)举行处置。
javax.swing.event.EventListenerList类
EventListenerList是一个包括XXEvent/XXListener对(pairs)的阵列(数组)。JComponent及其派生类利用一个EventListenerList对象来保护其事务监听器。一切默许的模子(models)一样保护事务监听器和一个EventListenerList。当一个监听器被注册到一个Swing组件或模子(model)时,对应的事务的Class实例(用来标识事务种别)被增加至EventListenerList阵列,前面紧随该监听器自己(即一个XXEvent/XXListener对)。由于这些对是贮存在阵列而不是在可变的汇合(mutablecollection)中(出于对效力的思索),每次增加和移除城市挪用System.arrayCopy()来天生一个新的阵列。当收到事务时,阵列被遍历,事务就会被送至具有其范例的每个事务监听器。因为阵列是按XXEvent,XXListener,YYEvent,YYListener,...的体例分列的,某个事务种别的监听器老是紧随厥后。这类体例使得事务处置非常高效。为了线程平安,当从EventListenerList增加和移除监听器时,办法会见阵列必需同步。
JComponent界说了一个名为listenerList的受回护EventListListener属性,因此一切它的子类都承继了这个属性。Swing组件间接透过listenerList属性来办理其年夜部分事务监听器。
事务发送线程
事务监听器在事务发送线程(一个java.awt.EventDispatchThread类的实例)中承受并处置事务。一切的绘制和组件结构也被请求在此线程中产生。事务发送线程在AWT和Swing中具有优等的主要性,在使用中把持组件形态和显现的随时更新方面饰演着关头的脚色。
与此线程相干的是一个事务的FIFO(FirstInFirstOut,先辈先出)行列:体系事务行列(java.awt.EventQueue的一个实例)。跟一切的FIFO行列一样,体系事务行列也是被线性添补的。不管是更新组件属性,结构,或是从头绘制,每个哀求顺次运转事务处置代码。一切事务被顺次处置是为了不像某个组件的形态在它从头绘制的半途被不测改动如许的情形。晓得这一点后,我们就要制止在事务发送线程以外往发送事务。好比说,在另外一个线程中间接挪用fireXX()办法就是不平安的。我们同时也必需包管事务处置代码和绘制代码尽快地实行完,不然全部体系行列就会被堵塞,自愿守候某个事务被处置,从头绘制,或是结构终了,而我们的使用程序则像是被“解冻”或是得到呼应。
==============================================================================================
//ThankstoMatthewRobinsonandPavelVorobiev,Ph.DfortheirgreatbookSwing,thisarticleistranslatedform
//thisbook,1stedition.Youcanfindthesetextintheirbook(inEnglish)ofChapter2.
=================================================================================
要想收到事务发生的关照,我们必要在方针对象上注册事务监听器。事务监听器是恣意XXListener类或接口的详细完成(XX代指事务的范例)。XXListener是界说在java.awt.event、java.beans和javax.swing.event包中的类或接口。在每一个接口中最少界说了一个办法(method),该办法以对应的XXEvent作为参数。撑持发送XXEvent事务产生关照的类都须完成XXListener接口,同时供应响应的addXXListener()和removeXXListener()办法来注册和移除这些事务监听器,年夜部分的事务方针对象(target)都同意注册恣意多个事务监听器。一般撑持XXEvent的类都供应受回护的办法(protectedmethod)fireXX()来机关事务对象及将它送至事务处置器(eventhandler)举行处置。
javax.swing.event.EventListenerList类
EventListenerList是一个包括XXEvent/XXListener对(pairs)的阵列(数组)。JComponent及其派生类利用一个EventListenerList对象来保护其事务监听器。一切默许的模子(models)一样保护事务监听器和一个EventListenerList。当一个监听器被注册到一个Swing组件或模子(model)时,对应的事务的Class实例(用来标识事务种别)被增加至EventListenerList阵列,前面紧随该监听器自己(即一个XXEvent/XXListener对)。由于这些对是贮存在阵列而不是在可变的汇合(mutablecollection)中(出于对效力的思索),每次增加和移除城市挪用System.arrayCopy()来天生一个新的阵列。当收到事务时,阵列被遍历,事务就会被送至具有其范例的每个事务监听器。因为阵列是按XXEvent,XXListener,YYEvent,YYListener,...的体例分列的,某个事务种别的监听器老是紧随厥后。这类体例使得事务处置非常高效。为了线程平安,当从EventListenerList增加和移除监听器时,办法会见阵列必需同步。
JComponent界说了一个名为listenerList的受回护EventListListener属性,因此一切它的子类都承继了这个属性。Swing组件间接透过listenerList属性来办理其年夜部分事务监听器。
事务发送线程
事务监听器在事务发送线程(一个java.awt.EventDispatchThread类的实例)中承受并处置事务。一切的绘制和组件结构也被请求在此线程中产生。事务发送线程在AWT和Swing中具有优等的主要性,在使用中把持组件形态和显现的随时更新方面饰演着关头的脚色。
与此线程相干的是一个事务的FIFO(FirstInFirstOut,先辈先出)行列:体系事务行列(java.awt.EventQueue的一个实例)。跟一切的FIFO行列一样,体系事务行列也是被线性添补的。不管是更新组件属性,结构,或是从头绘制,每个哀求顺次运转事务处置代码。一切事务被顺次处置是为了不像某个组件的形态在它从头绘制的半途被不测改动如许的情形。晓得这一点后,我们就要制止在事务发送线程以外往发送事务。好比说,在另外一个线程中间接挪用fireXX()办法就是不平安的。我们同时也必需包管事务处置代码和绘制代码尽快地实行完,不然全部体系行列就会被堵塞,自愿守候某个事务被处置,从头绘制,或是结构终了,而我们的使用程序则像是被“解冻”或是得到呼应。
==============================================================================================
//ThankstoMatthewRobinsonandPavelVorobiev,Ph.DfortheirgreatbookSwing,thisarticleistranslatedform
//thisbook,1stedition.Youcanfindthesetextintheirbook(inEnglish)ofChapter2.
=================================================================================
要想收到事务发生的关照,我们必要在方针对象上注册事务监听器。事务监听器是恣意XXListener类或接口的详细完成(XX代指事务的范例)。XXListener是界说在java.awt.event、java.beans和javax.swing.event包中的类或接口。在每一个接口中最少界说了一个办法(method),该办法以对应的XXEvent作为参数。撑持发送XXEvent事务产生关照的类都须完成XXListener接口,同时供应响应的addXXListener()和removeXXListener()办法来注册和移除这些事务监听器,年夜部分的事务方针对象(target)都同意注册恣意多个事务监听器。一般撑持XXEvent的类都供应受回护的办法(protectedmethod)fireXX()来机关事务对象及将它送至事务处置器(eventhandler)举行处置。
javax.swing.event.EventListenerList类
EventListenerList是一个包括XXEvent/XXListener对(pairs)的阵列(数组)。JComponent及其派生类利用一个EventListenerList对象来保护其事务监听器。一切默许的模子(models)一样保护事务监听器和一个EventListenerList。当一个监听器被注册到一个Swing组件或模子(model)时,对应的事务的Class实例(用来标识事务种别)被增加至EventListenerList阵列,前面紧随该监听器自己(即一个XXEvent/XXListener对)。由于这些对是贮存在阵列而不是在可变的汇合(mutablecollection)中(出于对效力的思索),每次增加和移除城市挪用System.arrayCopy()来天生一个新的阵列。当收到事务时,阵列被遍历,事务就会被送至具有其范例的每个事务监听器。因为阵列是按XXEvent,XXListener,YYEvent,YYListener,...的体例分列的,某个事务种别的监听器老是紧随厥后。这类体例使得事务处置非常高效。为了线程平安,当从EventListenerList增加和移除监听器时,办法会见阵列必需同步。
JComponent界说了一个名为listenerList的受回护EventListListener属性,因此一切它的子类都承继了这个属性。Swing组件间接透过listenerList属性来办理其年夜部分事务监听器。
事务发送线程
事务监听器在事务发送线程(一个java.awt.EventDispatchThread类的实例)中承受并处置事务。一切的绘制和组件结构也被请求在此线程中产生。事务发送线程在AWT和Swing中具有优等的主要性,在使用中把持组件形态和显现的随时更新方面饰演着关头的脚色。
与此线程相干的是一个事务的FIFO(FirstInFirstOut,先辈先出)行列:体系事务行列(java.awt.EventQueue的一个实例)。跟一切的FIFO行列一样,体系事务行列也是被线性添补的。不管是更新组件属性,结构,或是从头绘制,每个哀求顺次运转事务处置代码。一切事务被顺次处置是为了不像某个组件的形态在它从头绘制的半途被不测改动如许的情形。晓得这一点后,我们就要制止在事务发送线程以外往发送事务。好比说,在另外一个线程中间接挪用fireXX()办法就是不平安的。我们同时也必需包管事务处置代码和绘制代码尽快地实行完,不然全部体系行列就会被堵塞,自愿守候某个事务被处置,从头绘制,或是结构终了,而我们的使用程序则像是被“解冻”或是得到呼应。
==============================================================================================
//ThankstoMatthewRobinsonandPavelVorobiev,Ph.DfortheirgreatbookSwing,thisarticleistranslatedform
//thisbook,1stedition.Youcanfindthesetextintheirbook(inEnglish)ofChapter2.
=================================================================================
JDK1.1以来都坚持稳定。Swing组件可以发生很多分歧种别的事务,包含那些在java.awt.event包和在javax.swing.event包中的事务。Swing新引进的那些事务种别常常是与特定Swing组件相干的。每个事务种别都是一个对象,它最少指了然事务的产生源,常常还带有别的动静,如该事务的种别、在事务产生前和产生后事务源形态的变更,等等。事务源年夜部分是一般的组件或模子(models,即MVC中的M,在今后的blog中大概会先容Swing组件的MVC布局)。别的的对象也大概发生事务。
要想收到事务发生的关照,我们必要在方针对象上注册事务监听器。事务监听器是恣意XXListener类或接口的详细完成(XX代指事务的范例)。XXListener是界说在java.awt.event、java.beans和javax.swing.event包中的类或接口。在每一个接口中最少界说了一个办法(method),该办法以对应的XXEvent作为参数。撑持发送XXEvent事务产生关照的类都须完成XXListener接口,同时供应响应的addXXListener()和removeXXListener()办法来注册和移除这些事务监听器,年夜部分的事务方针对象(target)都同意注册恣意多个事务监听器。一般撑持XXEvent的类都供应受回护的办法(protectedmethod)fireXX()来机关事务对象及将它送至事务处置器(eventhandler)举行处置。
javax.swing.event.EventListenerList类
EventListenerList是一个包括XXEvent/XXListener对(pairs)的阵列(数组)。JComponent及其派生类利用一个EventListenerList对象来保护其事务监听器。一切默许的模子(models)一样保护事务监听器和一个EventListenerList。当一个监听器被注册到一个Swing组件或模子(model)时,对应的事务的Class实例(用来标识事务种别)被增加至EventListenerList阵列,前面紧随该监听器自己(即一个XXEvent/XXListener对)。由于这些对是贮存在阵列而不是在可变的汇合(mutablecollection)中(出于对效力的思索),每次增加和移除城市挪用System.arrayCopy()来天生一个新的阵列。当收到事务时,阵列被遍历,事务就会被送至具有其范例的每个事务监听器。因为阵列是按XXEvent,XXListener,YYEvent,YYListener,...的体例分列的,某个事务种别的监听器老是紧随厥后。这类体例使得事务处置非常高效。为了线程平安,当从EventListenerList增加和移除监听器时,办法会见阵列必需同步。
JComponent界说了一个名为listenerList的受回护EventListListener属性,因此一切它的子类都承继了这个属性。Swing组件间接透过listenerList属性来办理其年夜部分事务监听器。
事务发送线程
事务监听器在事务发送线程(一个java.awt.EventDispatchThread类的实例)中承受并处置事务。一切的绘制和组件结构也被请求在此线程中产生。事务发送线程在AWT和Swing中具有优等的主要性,在使用中把持组件形态和显现的随时更新方面饰演着关头的脚色。
与此线程相干的是一个事务的FIFO(FirstInFirstOut,先辈先出)行列:体系事务行列(java.awt.EventQueue的一个实例)。跟一切的FIFO行列一样,体系事务行列也是被线性添补的。不管是更新组件属性,结构,或是从头绘制,每个哀求顺次运转事务处置代码。一切事务被顺次处置是为了不像某个组件的形态在它从头绘制的半途被不测改动如许的情形。晓得这一点后,我们就要制止在事务发送线程以外往发送事务。好比说,在另外一个线程中间接挪用fireXX()办法就是不平安的。我们同时也必需包管事务处置代码和绘制代码尽快地实行完,不然全部体系行列就会被堵塞,自愿守候某个事务被处置,从头绘制,或是结构终了,而我们的使用程序则像是被“解冻”或是得到呼应。
==============================================================================================
//ThankstoMatthewRobinsonandPavelVorobiev,Ph.DfortheirgreatbookSwing,thisarticleistranslatedform
//thisbook,1stedition.Youcanfindthesetextintheirbook(inEnglish)inChapter2.
=================================================================================
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊 |
|