<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_tatung zhang</title><subtitle type="text">不是一番寒彻骨,怎得梅花扑鼻香</subtitle><id>http://feed.cnblogs.com/blog/u/33564/rss</id><updated>2010-08-21T01:01:46Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/33564/rss"/><entry><id>http://www.cnblogs.com/datong/archive/2010/06/30/1768326.html</id><title type="text">深入理解 LWUIT 框架的 MVC</title><summary type="text">转载：http://www.cnblogs.com/macooma/archive/2010/04/28/1723173.html看了这篇文章，对LWUIT的 MVC 模式有了部分了解，看来以前的认识是错误的，就像文章最后那段代码MVC 是一个优秀的体系结构设计模式。MVC 把软件系统分为三个基本部分：模型（Model），视图（View）和控制器（Controller）。如下图所示：上图对 MVC...</summary><published>2010-06-30T05:54:00Z</published><updated>2010-06-30T05:54:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2010/06/30/1768326.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2010/06/30/1768326.html"/><content type="html">&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif; line-height: 17px; font-size: 13px; border-collapse: collapse; color: #333333; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;p&gt;&amp;nbsp;转载：&lt;a href="http://www.cnblogs.com/macooma/archive/2010/04/28/1723173.html" target="_blank"&gt;http://www.cnblogs.com/macooma/archive/2010/04/28/1723173.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;看了这篇文章，对LWUIT的 MVC 模式有了部分了解，看来以前的认识是错误的，就像文章最后那段代码&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MVC 是一个优秀的体系结构设计模式。MVC 把软件系统分为三个基本部分：模型（Model），视图（View）和控制器（Controller）。如下图所示：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/macooma/201004/2010042818041924.png"  alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden; "&gt;上图对 MVC 模式做了简单解释，明白了上图对 MVC 的各个划分部分的职责就很容易理解了。模型（Model）又称&amp;#8220;数据模型&amp;#8221;（Model），用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。&amp;#8220;模型&amp;#8221;有对数据直接访问的权力，例如对数据库的访问。&amp;#8220;模型&amp;#8221;不依赖&amp;#8220;视图&amp;#8221;和&amp;#8220;控制器&amp;#8221;，也就是说，模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制，那些用于监视此模型的视图必须事先在此模型上注册，从而，视图可以了解在数据模型上发生的改变。&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;视图（View）又称视图层，能够实现数据有目的的显示（理论上，这不是必需的）。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能，视图需要访问它监视的数据模型（Model），因此应该事先在被它监视的数据那里注册。&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;控制器（Controller）起到不同层面间的组织作用，用于控制应用程序的流程。它处理事件并作出响应。&amp;#8220;事件&amp;#8221;包括用户的行为和数据模型上的改变。&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Swing MVC 是公认的 MVC 设计的典范，Swing 的各个可视化组件都使用 MVC 模式来设计。在 Swing 中，M（Model，数据模型）是 JTextField 的 Document，JTabel 的 TableModel，JTree 的 TreeModel 。。。V（View，视图）则是 ComponentUI。C（控制器，Controller）却不是很明显，可以简单地将其 Event 机制看做一个 Swing 团队开发给 Swing 程序员的 C。&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LWUIT 引入了 MVC 的设计思想，其实 LWUIT 就是一个 JavaME 的 MVC 框架，LWUIT 官方就把 Swing Like MVC 列在了其主要特征的第二位。了解了 Swing 的 MVC 之后，参照 LWUIT 的 API，我想你可以将 LWUIT 的 M、V、C 对号入座了吧？没错，正如你所猜到的，在 LWUIT 中，M（Model，数据模型）是 List 的 ListModel，Tabel 的 TableModel，Tree 的 TreeModel 。。。V（View，视图）则是 ComponentUI（即 API 中给的各个 LWUIT 控件）。C（控制器，Controller）却不是很明显，可以简单地将其 Event 机制看做一个 LWUIT 团队开发给 LWUIT 程序员的 C。如果你觉得这样说对控制器的理解很抽象，你可以把你的程序里每个实现了 com.sun.lwuit.events.ActionListener 接口的类当成一个控制器。&lt;/div&gt;&lt;div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MVC 的优势就是各司其责：M 只管把数据组织好就是了；V 只管把信息完美地展现给用户；而 C 则只负责对用户事件进行监听，并做出相应处理，它是 MVC 的组织者。这让人想起来流行的 Java EE 四层体系架构：展现层、业务层、数据访问层（操作保存数据库）、持久层（数据保存为文件），各层各司其职。那是以业务模型为中心的大型应用，我们的 JavaME 只是手机客户端的应用小程序，没有那么复杂的业务逻辑要处理，也没有庞大的业务数据要持久化，没有必要分那么多层，就一个表现层足够了。也可以根据需要适当把模型层扩展一下。如下图所示，对使用了 LWUIT 的 Java ME 应用程序中责任分工做的一个概述。&lt;/div&gt;&lt;p&gt;上图对 MVC 模式做了简单解释，明白了上图对 MVC 的各个划分部分的职责就很容易理解了。模型（Model）又称&amp;#8220;数据模型&amp;#8221;（Model），用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。&amp;#8220;模型&amp;#8221;有对数据直接访问的权力，例如对数据库的访问。&amp;#8220;模型&amp;#8221;不依赖&amp;#8220;视图&amp;#8221;和&amp;#8220;控制器&amp;#8221;，也就是说，模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制，那些用于监视此模型的视图必须事先在此模型上注册，从而，视图可以了解在数据模型上发生的改变。&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;视图（View）又称视图层，能够实现数据有目的的显示（理论上，这不是必需的）。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能，视图需要访问它监视的数据模型（Model），因此应该事先在被它监视的数据那里注册。&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;控制器（Controller）起到不同层面间的组织作用，用于控制应用程序的流程。它处理事件并作出响应。&amp;#8220;事件&amp;#8221;包括用户的行为和数据模型上的改变。&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Swing MVC 是公认的 MVC 设计的典范，Swing 的各个可视化组件都使用 MVC 模式来设计。在 Swing 中，M（Model，数据模型）是 JTextField 的 Document，JTabel 的 TableModel，JTree 的 TreeModel 。。。V（View，视图）则是 ComponentUI。C（控制器，Controller）却不是很明显，可以简单地将其 Event 机制看做一个 Swing 团队开发给 Swing 程序员的 C。&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LWUIT 引入了 MVC 的设计思想，其实 LWUIT 就是一个 JavaME 的 MVC 框架，LWUIT 官方就把 Swing Like MVC 列在了其主要特征的第二位。了解了 Swing 的 MVC 之后，参照 LWUIT 的 API，我想你可以将 LWUIT 的 M、V、C 对号入座了吧？没错，正如你所猜到的，在 LWUIT 中，M（Model，数据模型）是 List 的 ListModel，Tabel 的 TableModel，Tree 的 TreeModel 。。。V（View，视图）则是 ComponentUI（即 API 中给的各个 LWUIT 控件）。C（控制器，Controller）却不是很明显，可以简单地将其 Event 机制看做一个 LWUIT 团队开发给 LWUIT 程序员的 C。如果你觉得这样说对控制器的理解很抽象，你可以把你的程序里每个实现了 com.sun.lwuit.events.ActionListener 接口的类当成一个控制器。&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MVC 的优势就是各司其责：M 只管把数据组织好就是了；V 只管把信息完美地展现给用户；而 C 则只负责对用户事件进行监听，并做出相应处理，它是 MVC 的组织者。这让人想起来流行的 Java EE 四层体系架构：展现层、业务层、数据访问层（操作保存数据库）、持久层（数据保存为文件），各层各司其职。那是以业务模型为中心的大型应用，我们的 JavaME 只是手机客户端的应用小程序，没有那么复杂的业务逻辑要处理，也没有庞大的业务数据要持久化，没有必要分那么多层，就一个表现层足够了。也可以根据需要适当把模型层扩展一下。如下图所示，对使用了 LWUIT 的 Java ME 应用程序中责任分工做的一个概述。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/macooma/201004/2010042818044364.jpg"  alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;MVC 可以使我们应用程序的表现层部分更加低耦合、高内聚、灵活度更高。那么我们在 LWUIT 程序中应该怎样使用 MVC 模式呢？&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1、Form 或者其他顶层容器中，由各个 LWUIT 组件构成了 View 视图层。用来展现数据，提供用户操作的图形界面。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2、一个或者一组业务对象是 Model。它们存放了 LWUIT 组件要显示的数据。它们是业务对象，因此，可以直接在业务层代码中使用，执行复杂的业务计算。为了让 LWUIT 组件实时展现业务对象的数据，我们需要让 LWUIT 组件监听业务对象，一旦业务对象发生改变，就重新根据新的数据，构建新的 LWUIT 组件的 Model，从而在 LWUIT 组件上展现最新的业务对象数据。为了让业务对象能够得到用户最新输入的数据，我们还需要将业务对象注册到 LWUIT 组件上。一旦 LWUIT 组件的数据发生了改变，就通知业务对象。业务对象根据 LWUIT 组件的 Model，修改业务对象的值。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3、在 LWUIT 各个组件上注册响应事件的监听器（控制器），以响应用户的操作。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;于是 MVC 后的 LWUIT 程序的执行流程就是这个样子了：用户看到一个 LWUIT 控件构成的界面 -&amp;gt; 用户在界面上进行操作 -&amp;gt; LWUIT 控件的控制器被触发 -&amp;gt; 可能就激发了 ActionListener 的事件，引起业务对象自动使用 LWUIT 的 Model 数据进行更新 -&amp;gt; &amp;nbsp;业务对象更新数据，又会激发业务对象上的 DataChangedListener 的事件，这会引起所有监听业务对象 LWUIT 控件更新其 Model 的数据，从而改变 LWUIT 控件的显示 -&amp;gt; 我们可能针对业务对象，执行业务层代码，进行复杂的业务计算，从而得到新的业务对象的值，这同样会激发业务对象的 DataChangedListener 的事件，让 LWUIT 控件的 Model 得到更新，从而改变 LWUIT 控件显示的界面 -&amp;gt; 当然，我们也可以直接修改某些 LWUIT 组件的 Model 或者外观。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;可以看出，通过业务对象和 Lwuit 控件的 Model 关联起来，在 LWUIT 应用程序中只需要&amp;#8220;以业务对象为中心&amp;#8221;，操纵业务对象，执行业务操作就可以了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List 控件是最常用的 LWUIT 控件，因为我们的手机屏幕总是受限的。关于 List 我们前面的博客中有过接触&amp;#8212;&amp;#8212;《玩转 LWUIT 之四：LWUIT 控件（中）》里介绍的 ComboBox 就是一个 List 的子类。我们写一个关于 List 的 MVC 应用。仍然使用 LWUIT 官方提供的开发指南中给的 List 使用的例子。源代码如下（当然实际运用中要复杂一些）：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" style="background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; word-break: break-all; overflow-x: auto; overflow-y: auto; "&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  1&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;package&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.defonds.lwuit;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  2&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  3&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.Button;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  4&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.CheckBox;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  5&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.Command;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  6&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.Component;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  7&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.Display;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  8&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.Form;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;  9&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.List;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 10&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.animations.CommonTransitions;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 11&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.events.ActionEvent;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 12&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.events.ActionListener;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 13&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.events.DataChangedListener;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 14&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.layouts.FlowLayout;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 15&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.list.DefaultListModel;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 16&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.list.ListCellRenderer;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 17&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.list.ListModel;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 18&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.plaf.UIManager;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 19&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;import&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; com.sun.lwuit.util.Resources;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 20&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 21&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;class&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; HelloMidlet &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;extends&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; javax.microedition.midlet.MIDlet &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;implements&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; DataChangedListener{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 22&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 23&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Form exampleContainer;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; declare a Form&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 24&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; String[] content &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; { &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Red&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Blue&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Green&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Yellow&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; };&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;just a data source demo,of course,the data can be from the network,storage etcetera...&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 25&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; contentLeng &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;4&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;remeber the size of content&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 26&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; ListModel myListModel;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;declare a ListModel&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 27&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; ListModel myListModel2;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;declare a ListModel&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 28&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; List list;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;declare a List&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 29&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; List list2;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;declare a List&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 30&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Button button;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;declare a Button&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 31&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 32&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; startApp() {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 33&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; init the LWUIT Display&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 34&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        Display.init(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 35&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; Setting the application theme is discussed&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 36&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; later in the theme chapter and the resources chapter&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 37&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;try&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 38&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            Resources r &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Resources.open(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/myresources.res&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 39&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            UIManager.getInstance().setThemeProps(r.getTheme(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;myresources&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 40&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        } &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;catch&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; (java.io.IOException e) {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 41&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 42&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Form(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Form Title&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; Create a Form&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 43&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        myListModel &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; DefaultListModel(content);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Initialize a default list model with "content" inside&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 44&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        myListModel.addDataChangedListener(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Adding a a data changed listener to catch user operation&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 45&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        myListModel2 &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; DefaultListModel();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Initialize a default list model with nothing inside&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 46&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        myListModel2.addItem(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;White&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;add an item to model &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 47&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        myListModel2.addItem(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Black&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;add an item to model &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 48&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 49&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        button &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Button(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Move selected item down&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; Create a Button   &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 50&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        button.setAlignment(Component.CENTER);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Sets the Alignment of the button   &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 51&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        button.addActionListener(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; ActionListener(){&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 52&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; actionPerformed(ActionEvent evt) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 53&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                myListModel.removeItem(list.getSelectedIndex());&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 54&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 55&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        });&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 56&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 57&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        list &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; List(myListModel);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Creating a List with "myListModel"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 58&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        list2 &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; List(myListModel2);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Creating a List with "myListModel2"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 59&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        list.setListCellRenderer(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; checkBoxRenderer());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Setting a checkBox renderer&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 60&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        list2.setListCellRenderer(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; checkBoxRenderer());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Setting a checkBox renderer&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 61&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 62&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.setLayout(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; FlowLayout());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Set LayoutManager&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 63&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.addComponent(list);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Add a List to the Form content pane&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 64&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.addComponent(button);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Add a Button to the Form content pane&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 65&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.addComponent(list2);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Add a List to the Form content pane&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 66&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.setTransitionOutAnimator(CommonTransitions.createFade(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;400&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;));&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Set Transitions animation of Fade&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 67&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.addCommand(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Command(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;Run&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;2&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;));&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Add Command key&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 68&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.show();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Show it&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 69&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 70&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 71&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; pauseApp() {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 72&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 73&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; destroyApp(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;boolean&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; unconditional) {}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 74&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 75&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;implements the method of DataChangedListener  &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 76&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; dataChanged(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; type, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; index) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 77&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        myListModel2.addItem(content[index]);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;add the deleted item to myListModel2&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 78&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;while&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;(index &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; contentLeng &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;){&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 79&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            content[index] &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; content[&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;++&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; index];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 80&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 81&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        content[index] &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;null&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 82&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        contentLeng &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;--&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;refresh the content to synchronize with myListModel&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 83&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        exampleContainer.refreshTheme();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;refresh the form theme&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 84&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 85&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 86&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 87&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;    * Demonstrates implementation of a renderer derived from a CheckBox&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 88&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 89&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;class&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; checkBoxRenderer &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;extends&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; CheckBox &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;implements&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; ListCellRenderer{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 90&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; Creates a new instance of checkBoxRenderer &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 91&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; checkBoxRenderer(){&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 92&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;super&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;""&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 93&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 94&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 95&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; Setting the current check box text and status&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 96&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Component getListCellRendererComponent(List list,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 97&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                Object value, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; index, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;boolean&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; isSelected) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 98&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            setText(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;""&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;+&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; value);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 99&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; (isSelected){&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;100&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                setFocus(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;true&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;101&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                setSelected(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;true&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;102&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;else&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;103&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                setFocus(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;104&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                setSelected(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;105&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;106&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;107&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;108&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;109&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt; Returning the list focus component&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;110&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Component getListFocusComponent(List list) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;111&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            setText(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;""&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;112&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            setFocus(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;true&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;113&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            setSelected(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;true&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;114&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;115&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;116&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;117&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;118&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;HelloList 运行效果图如下所示：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/macooma/201004/2010042818054035.jpg"  alt="" /&gt;&lt;/p&gt;&lt;p&gt;这段代码的运行效果是当选择了上方 List 中的选项后，点击&amp;#8220;Move selected item down&amp;#8221;按钮可以把该选项转移到下方 List 中。限于美工底子有限，UI 效果有点差，这里重点演示 MVC 效果。比如连续点击两次&amp;#8220;Move selected item down&amp;#8221;后运行效果图如下：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/macooma/201004/2010042818055666.jpg"  alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;用户选择用户操作后（按了&amp;#8220;Move selected item down&amp;#8221;按钮），控制器被触发（按钮所添加的 ActionListener），激发了 ActionListener 的事件，引起业务对象自动使用 LWUIT 的 Model 数据进行更新（就是代码中把某项 remove 掉），业务对象更新数据，又会激发业务对象上的 DataChangedListener 的事件（监听于 myListModel 的 DataChangedListener 被激发），引起所有监听业务对象的 DataChangedListener 的事件（dataChanged 方法被调用），让 LWUIT 控件的 Model 得到更新（myListModel2 被更新），从而改变 LWUIT 控件显示的界面。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;从代码中可以看出，ListModel 是 Model，List、ListCellRenderer 是 View，可以把继承自 ActionListener 的 类作为 Controller。有的朋友把自己写的一个封装信息的 JavaBean 当做 Model，把 List 当做 View，而把 ListCellRenderer 当做是 Controller，其实是不对的，是对 LWUIT MVC 的误解，虽然写出来的代码运行应该是没有问题的。比如下边一段代码：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" style="background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; word-break: break-all; overflow-x: auto; overflow-y: auto; "&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 1&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 2&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;     * Model&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 3&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;     &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 4&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;class&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Person {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 5&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; String name;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 6&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Image photo;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 7&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Person(String name, Image photo) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 8&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;.name &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; name;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt; 9&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;.photo &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; photo;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;10&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;11&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; String getName() {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;12&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; name;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;13&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;14&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; setName(String name) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;15&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;.name &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; name;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;16&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;17&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Image getPhoto() {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;18&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; photo;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;19&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;20&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; setPhoto(Image photo) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;21&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;.photo &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; photo;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;22&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;23&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;24&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;25&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;     * View&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;26&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;     &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;27&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; List createList(Person[] persons, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; orientation, ListCellRenderer renderer) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;28&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        List list &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; List(persons);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;29&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        list.setListCellRenderer(renderer);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;30&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        list.setOrientation(orientation);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;31&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; list;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;32&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;33&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;34&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;     &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;35&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;     * Controller&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;36&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;     &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;37&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;class&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Renderer &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;extends&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Container &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;implements&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; ListCellRenderer {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;38&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Label name &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Label(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;""&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;39&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Label pic &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Label(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;""&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;40&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Label focus &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Label(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;""&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;41&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Container cnt &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Container(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; BoxLayout(BoxLayout.Y_AXIS));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;42&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Renderer() {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;43&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            setLayout(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; BorderLayout());&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;44&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            addComponent(BorderLayout.WEST, pic);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;45&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            name.getStyle().setBgTransparency(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;46&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            cnt.addComponent(name);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;47&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            addComponent(BorderLayout.CENTER, cnt);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;48&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;focus用于设置List选中时的效果，这里设置List的选中项具有绿色的边框&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;49&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            focus.getStyle().setBorder(Border.createLineBorder(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;0x00ff00&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;50&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;51&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Component getListCellRendererComponent(List list, Object value,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;52&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;                &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; index, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;boolean&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; isSelected) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;53&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            Person person &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; (Person) value;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;54&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            name.setText(person.getName());&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;55&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            pic.setIcon(person.getPhoto());&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;56&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;57&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;58&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; Component getListFocusComponent(List list) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;59&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;            &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; focus;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;60&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008080; "&gt;61&lt;/span&gt; &lt;span style="font-family: 'Courier New'; color: #000000; "&gt;    }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/datong/aggbug/1768326.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/datong/archive/2010/06/30/1768326.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2010/01/25/1655549.html</id><title type="text">lwuit控件关系模式图，Padding和Margin关系图</title><summary type="text"/><published>2010-01-25T00:39:00Z</published><updated>2010-01-25T00:39:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2010/01/25/1655549.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2010/01/25/1655549.html"/><content type="text"/></entry><entry><id>http://www.cnblogs.com/datong/archive/2010/01/08/1642385.html</id><title type="text">eclipse rcp 获取工程项目路径</title><summary type="text">花了我很多时间，做个记录。URL projectUrl = FileLocator.find(EsionBOSActivator.getDefault().getBundle(), projectPath, null);EsionStudio studio = StudioOperate.loadStudio(projectUrl);EsionBOSActivator必须添加到plugin.xml...</summary><published>2010-01-08T09:06:00Z</published><updated>2010-01-08T09:06:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2010/01/08/1642385.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2010/01/08/1642385.html"/><content type="text">花了我很多时间，做个记录。URL projectUrl = FileLocator.find(EsionBOSActivator.getDefault().getBundle(), projectPath, null);EsionStudio studio = StudioOperate.loadStudio(projectUrl);EsionBOSActivator必须添加到plugin.xml...</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/12/24/1631433.html</id><title type="text">eclipse content assist 代码提示功能失效解决办法</title><summary type="text">eclipse代码提示功能的设置刚才安装了VE后，发现提示公能没有了。解决方法：windows－&gt;preferences-&gt;java-&gt;Editor-&gt;Code Assist 中auto－activetion中的Enable auto-activetion选项要勾选上这里面有个时间的设定是为提示代码设定的显示时间。你可以根据自己的情况设定。但都不能自动提示，查了查以前ecl...</summary><published>2009-12-24T06:45:00Z</published><updated>2009-12-24T06:45:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/12/24/1631433.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/12/24/1631433.html"/><content type="text">eclipse代码提示功能的设置刚才安装了VE后，发现提示公能没有了。解决方法：windows－&gt;preferences-&gt;java-&gt;Editor-&gt;Code Assist 中auto－activetion中的Enable auto-activetion选项要勾选上这里面有个时间的设定是为提示代码设定的显示时间。你可以根据自己的情况设定。但都不能自动提示，查了查以前ecl...</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/12/24/1631110.html</id><title type="text">LWUIT 1.3 发布了</title><summary type="text">大家可以在这边http://java.sun.com/javame/technology/lwuit/下载...新版本中的新特性：LWUIT1.3 新增了一下新特性： 1、触屏手机虚拟键盘支持。 2、在1.3版中即使那些没有焦点的组件也能够滚动了，以前的版本中例如在Form中创建一个Label，Lael里面装一张1024*768的图片，这个Label只能够显示屏幕范围内的图片，超出屏幕范围的图片则...</summary><published>2009-12-24T01:23:00Z</published><updated>2009-12-24T01:23:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/12/24/1631110.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/12/24/1631110.html"/><content type="text">大家可以在这边http://java.sun.com/javame/technology/lwuit/下载...新版本中的新特性：LWUIT1.3 新增了一下新特性： 1、触屏手机虚拟键盘支持。 2、在1.3版中即使那些没有焦点的组件也能够滚动了，以前的版本中例如在Form中创建一个Label，Lael里面装一张1024*768的图片，这个Label只能够显示屏幕范围内的图片，超出屏幕范围的图片则...</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/12/15/1624898.html</id><title type="text">Eclipse RCP中添加第三方jar包的办法</title><summary type="text">今天做一个XML解析的DEMO，要用到 jdom.jar，添加后工程就编译出错了删除掉也还是一样的错误，郁闷了还一会。现在把方法共享出来。1、在工程中新建一个lib目录，将jdom.jar拷贝到那个目录底下。2、打开plugin.xml选项卡中的build，你会看到最底下的Extra ClassPath Entries，如图：3、仍然在plugin的Build页面上，左边的Binary Build...</summary><published>2009-12-15T08:19:00Z</published><updated>2009-12-15T08:19:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/12/15/1624898.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/12/15/1624898.html"/><content type="text">今天做一个XML解析的DEMO，要用到 jdom.jar，添加后工程就编译出错了删除掉也还是一样的错误，郁闷了还一会。现在把方法共享出来。1、在工程中新建一个lib目录，将jdom.jar拷贝到那个目录底下。2、打开plugin.xml选项卡中的build，你会看到最底下的Extra ClassPath Entries，如图：3、仍然在plugin的Build页面上，左边的Binary Build...</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/08/10/1542594.html</id><title type="text">lwuit---调整滚动条灵敏度值</title><summary type="text">Component类中：[代码]</summary><published>2009-08-10T00:59:00Z</published><updated>2009-08-10T00:59:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/08/10/1542594.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/08/10/1542594.html"/><content type="text">Component类中：[代码]</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/08/10/1542590.html</id><title type="text">lwuit---更改字体大小</title><summary type="text">lwuit默认的字体是比较小的，所以我们可以在系统上做个设置字体大小的。首先在Midlet上设置字体大小， Font.setDefaultFont(Font.createSystemFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN, Font.SIZE_MEDIUM));Font.SIZE_MEDIUM这个值改成读变量的，然后就是读取了，在UIManager类上：[代码...</summary><published>2009-08-10T00:52:00Z</published><updated>2009-08-10T00:52:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/08/10/1542590.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/08/10/1542590.html"/><content type="text">lwuit默认的字体是比较小的，所以我们可以在系统上做个设置字体大小的。首先在Midlet上设置字体大小， Font.setDefaultFont(Font.createSystemFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN, Font.SIZE_MEDIUM));Font.SIZE_MEDIUM这个值改成读变量的，然后就是读取了，在UIManager类上：[代码...</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/08/03/1537343.html</id><title type="text">j2me获取手机IMEI保证软件信息安全解决方案</title><summary type="text">j2me想要获取所有手机型号的硬件信息（IMEI）来当做安全验证几乎是不可能的，因为有太多的型号手机无法获取得到。所以需要用一些变相的方法参与解决，那就是让那些获取不到的自动生成一串GUID然后存储到RMS中，每次读取验证，不过也会带来一些问题，那就是每次卸载掉程序以后，RMS会随之没掉，导致软件需要重新注册。下面是示意图：如果midlet name更改则rms也跟着更改。</summary><published>2009-08-03T02:13:00Z</published><updated>2009-08-03T02:13:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/08/03/1537343.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/08/03/1537343.html"/><content type="text">j2me想要获取所有手机型号的硬件信息（IMEI）来当做安全验证几乎是不可能的，因为有太多的型号手机无法获取得到。所以需要用一些变相的方法参与解决，那就是让那些获取不到的自动生成一串GUID然后存储到RMS中，每次读取验证，不过也会带来一些问题，那就是每次卸载掉程序以后，RMS会随之没掉，导致软件需要重新注册。下面是示意图：如果midlet name更改则rms也跟着更改。</content></entry><entry><id>http://www.cnblogs.com/datong/archive/2009/08/03/1537324.html</id><title type="text">show一下最新项目的界面图</title><summary type="text">快两个月的开发终于发布了，showshow界面，效果不会比以前mobile的差。经过测试在大部分手机的自适应效果都是很好的。这个项目做下来，感触颇多，其中经历了许多，不过现在都过去了，就像孕育一个孩子一样，看着她从无到有，从粗陋到成熟华丽，可能现在还没能体现出价值，但是我坚信你会有闪光的一天。</summary><published>2009-08-03T01:42:00Z</published><updated>2009-08-03T01:42:00Z</updated><author><name>tatung zhang</name><uri>http://www.cnblogs.com/datong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/datong/archive/2009/08/03/1537324.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/datong/archive/2009/08/03/1537324.html"/><content type="text">快两个月的开发终于发布了，showshow界面，效果不会比以前mobile的差。经过测试在大部分手机的自适应效果都是很好的。这个项目做下来，感触颇多，其中经历了许多，不过现在都过去了，就像孕育一个孩子一样，看着她从无到有，从粗陋到成熟华丽，可能现在还没能体现出价值，但是我坚信你会有闪光的一天。</content></entry></feed>
