﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-konhon-随笔分类-J2me</title><link>http://www.blogjava.net/konhon/category/3105.html</link><description>忘掉過去，展望未來。找回自我，超越自我。
&lt;br&gt;
&lt;b&gt;逃避不一定躲的过, 面对不一定最难过, 孤单不一定不快乐, 得到不一定能长久, 失去不一定不再拥有, 可能因为某个理由而伤心难过, 但我却能找个理由让自己快乐.&lt;/b&gt;&lt;br&gt;&lt;p&gt;
&lt;!-- Search Google --&gt;
&lt;left&gt;
&lt;form method="get" action="http://www.google.com/custom" target="google_window"&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;input type="submit" name="sa" value="搜索"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-5408663347953425"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="UTF-8"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="UTF-8"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="zh-CN"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/left&gt;
&lt;!-- Search Google --&gt;
</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 11:03:39 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 11:03:39 GMT</pubDate><ttl>60</ttl><item><title>J2me游戏编程</title><link>http://www.blogjava.net/konhon/archive/2005/09/21/13679.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Wed, 21 Sep 2005 12:31:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/21/13679.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/13679.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/21/13679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/13679.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/13679.html</trackback:ping><description><![CDATA[<A href="http://www.blogjava.net/konhon/Files/konhon/J2me&amp;Game.rar">J2me游戏编程电子书</A><BR><A href="http://www.blogjava.net/konhon/Files/konhon/j2megamingbook-0.5.6_src.zip">J2me游戏编程随书源码</A><img src ="http://www.blogjava.net/konhon/aggbug/13679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-21 20:31 <a href="http://www.blogjava.net/konhon/archive/2005/09/21/13679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2me中的编码技巧之提高性能</title><link>http://www.blogjava.net/konhon/archive/2005/09/21/13641.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Wed, 21 Sep 2005 08:00:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/21/13641.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/13641.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/21/13641.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/13641.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/13641.html</trackback:ping><description><![CDATA[<P>1、用StringBuffer代替String，因为String对象不能被更改，任何对String对象的更改都是创建一个新的String对象。<BR>2、直接存取类的变量比通过setter和getter方法快。<BR>3、使用要地变量比使用类或实例变量更有效率。<BR>4、使用变量比使用数组更有准备准备效率。<BR>5、避免在循环中进行同步，因为每一次循环都会有lock和unlock的过程，会严重影响程序执行效率。<BR>6、循环中倒数（递减）比正数（递增）要快。<BR>7、使用类似于x+=1替代x=x+1，因为这样生成的代码小。<BR>8、删除循环中的常量运算。<BR>9、重复利用对象。<BR>10、把不再使用的对象赋值为null，特别是不再使用的thread。<BR>11、尽量使用内置的方法。比如，想实现将数据从一个数组拷贝到另一个数组的功能，使用用System.arrraycompy比自己创建新的方法的效率更有效率。</P><img src ="http://www.blogjava.net/konhon/aggbug/13641.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-21 16:00 <a href="http://www.blogjava.net/konhon/archive/2005/09/21/13641.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java examples (example source code) </title><link>http://www.blogjava.net/konhon/archive/2005/09/09/12500.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Fri, 09 Sep 2005 00:37:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/09/12500.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/12500.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/09/12500.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/12500.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/12500.html</trackback:ping><description><![CDATA[Java examples (example source code) <BR><A href="http://www.java2s.com/ExampleCode/J2ME/CatalogJ2ME.htm"><BR>http://www.java2s.com/ExampleCode/J2ME/CatalogJ2ME.htm</A><img src ="http://www.blogjava.net/konhon/aggbug/12500.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-09 08:37 <a href="http://www.blogjava.net/konhon/archive/2005/09/09/12500.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一個J2me小程序</title><link>http://www.blogjava.net/konhon/archive/2005/09/07/12325.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Wed, 07 Sep 2005 08:42:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/07/12325.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/12325.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/07/12325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/12325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/12325.html</trackback:ping><description><![CDATA[為女朋友寫的一個小程序<BR>主要功能類似"中英字典", 不中英對照需要自己錄入才行.<BR><BR><A href="http://www.blogjava.net/konhon/konhon/Files/konhon/WordTip.rar">http://www.blogjava.net/Files/konhon/WordTip.rar</A><BR><BR>錄入完後供查找.<BR>適用midp1.0的手機.<BR><BR>軟件截圖:<BR><IMG height=423 alt=r_aa.JPG src="http://www.blogjava.net/images/blogjava_net/konhon/3260/r_aa.JPG" width=400 border=0><img src ="http://www.blogjava.net/konhon/aggbug/12325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-07 16:42 <a href="http://www.blogjava.net/konhon/archive/2005/09/07/12325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2ME中文问题的解决方案</title><link>http://www.blogjava.net/konhon/archive/2005/09/05/12046.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Mon, 05 Sep 2005 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/05/12046.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/12046.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/05/12046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/12046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/12046.html</trackback:ping><description><![CDATA[<STRONG><BR></STRONG>Java的中文问题通常会困扰很多开发者，你可能在开发Web应用程序的时候遇到中文参数的传递问题，最后你可能选择使用Filter把Request的编码方式设置为GBK来解决。在J2ME的开发中我们同样会遇到中文问题，比如在RMS中存储中文、网络传输中传输中文、从文件中读取中文等问题。 <BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;我们在解决中文问题的时候，用到的最多的一个词就是UTF-8。我们知道ASCII码是单字节编码方式，可以解决英文的问题，但是中文的字库非常庞大，用ASSII码就难以解决了。Java语言是支持UNICODE编码方式的，UNICODE是双字节的编码方式可以支持中文字库，但是这多少带来一些浪费，因为并不是所有的字符串都是非英文字符的。UTF-8编码方式正好可以解决这个问题，只有当字符不是ASSII码的时候他采用双字节来表示，这样就节省了空间。这里我只总结了三种J2ME常见的中文问题。</P><BR>网络传输中的中文问题<BR>&nbsp;&nbsp;&nbsp;&nbsp;解决这个问题的关键是我们不采用InputStream或者OutputStream提供的方法按照字节来传递数据，而是把InputStream或者OutputStream封装为DataInputStream和DataOutputStream。这样我们就可以使用DataOutputStream中的writeUTF(String s)来送出数据了，同时可以使用DataInputStream提供的readUTF()来读入数据。注意在这两个方法搭配使用的时候要注意顺序。比如我们在联网的时候可能写出这样的代码<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;客户端<BR>　　dos.writeInt(myint);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dos.writeByte(mybyte);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dos.writeUTF(myString);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;服务器端<BR>&nbsp;&nbsp;&nbsp;&nbsp;int i = dis.readInt();<BR>&nbsp;&nbsp;&nbsp;&nbsp;byte b = dis.readByte();<BR>&nbsp;&nbsp;&nbsp;&nbsp;String s = dis.readUTF();&nbsp;&nbsp;<BR>RMS持久性存储的中文问题<BR>&nbsp;&nbsp;&nbsp;&nbsp;由于RMS中的数据存储都是按照byte[]的格式存储的，因此我们需要稍微变化一下，但是基本上还是走UTF-8的思路。<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;写入数据<BR>&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream baos = new ByteArrayOutputStream();<BR>&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream dos = new DataOutputStream(baos);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dos.writeUTF(myString);<BR>&nbsp;&nbsp;&nbsp;&nbsp;byte[] data = baos.toByteArray();<BR>&nbsp;&nbsp;&nbsp;&nbsp;rs.addRecord(data,0,data.length);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;读出数据<BR>&nbsp;&nbsp;&nbsp;&nbsp;byte[] data = rs.getRecord(index);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayInputStream bais = new ByteArrayInputStream(data);<BR>&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream dis = new DataInputStream(bais);<BR>&nbsp;&nbsp;&nbsp;&nbsp;String myString = dis.readUTF(); <BR>读取中文文件的问题<BR>在MIDP中并不支持文件系统，但是我们可以读取jar包中的文件。如果文件中含有中文，那么我们需要进行一些特殊的处理，首先我们使用UE或者Notepad工具把相关的文件转换文UTF-8格式编码。我们在读取文件的时候需要进行如下的简单处理。下面是处理函数。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;public String readFromFile(String fileName)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String returnString = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream is = getClass().getResourceAsStream(fileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (is != null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream baos = new ByteArrayOutputStream();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int ch = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ((ch = is.read()) != -1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baos.write(ch);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[] data = baos.toByteArray();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnString = new String(data, "UTF-8");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baos.close();<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return returnString;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR></P><img src ="http://www.blogjava.net/konhon/aggbug/12046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-05 16:11 <a href="http://www.blogjava.net/konhon/archive/2005/09/05/12046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何学好J2ME</title><link>http://www.blogjava.net/konhon/archive/2005/09/05/12044.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Mon, 05 Sep 2005 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/05/12044.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/12044.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/05/12044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/12044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/12044.html</trackback:ping><description><![CDATA[<OL>
<LI>具备良好的java语言基础，不要还没有学习java语言就拿起一本J2ME的书来看。这样效果并不好，相反如果你有良好的java语言基础的话，J2ME就显得比较容易掌握！<BR><BR>
<LI>如果你决定开始学习J2ME了，那么首先你应该清楚J2ME的体系结构是什么样的。当你真正清楚了Configuration和Profile的关系、了解了CDC和CLDC的区别后，那么你可以开始编写自己的HelloWorldMIDlet了 <BR><BR>
<LI>选择优秀的开发环境，J2ME的开发环境比较灵活。我推荐使用Eclipse和EclipseME插件。因为Eclipse的插件非常丰富且灵活，当你开发联网应用程序的时候安装Lomboz就可以了。当然你也可以选择Jbuilder等IDE，但是不推荐记事本！ <BR><BR>
<LI>在编写代码之前，应该多读一下好的代码。毕竟MIDlet的写法和一般的java Application不是很一样。推荐WTK中的Demo程序。 <BR><BR>
<LI>MIDP的API doc比较少，每个类的方法也很少。如果有时间的话，每天看个4-5个。这会对你帮助很大。毕竟它的API和J2SE的并不一样，只是它的子集，不应该想当然的使用。 <BR><BR>
<LI>清楚MIDP中高级UI和低级UI类的使用和区别，在你做用户界面的之前，思考好什么符合你的要求，推荐使用高级UI，这样更简单、可移植性更好。但是需要使用Canvas的时候不要犹豫，大胆使用！清楚高级事件和低级事件处理的机制。 <BR><BR>
<LI>在开发应用程序的时候尽量使用MVC模式，这样扩展性出色。<BR><BR>
<LI>彻底掌握Record Management System，这是MIDP的一个重要子集。实现数据持久性存储不可缺少的系统。善于使用RecordFilter和RecordEnumeration来简化RMS的操作，在我的blog里面有一系列的关于RMS的文章，有时间就看看吧！ <BR><BR>
<LI>重视线程，如果你还不真正清楚线程的时候的话，那么赶快找资料看看吧。在J2ME的开发中，这非常的重要。具备了联网的能力则给你的应用程序插上了翅膀，而联网的时候为了避免堵塞一定要使用多线程技术。 <BR><BR>
<LI>时刻关注最新的技术，比如PIM，BlueTooth等都在慢慢的得到支持。你可以使用WTK2.2开发相关的程序了。 <BR><BR>
<LI>掌握Java中文问题，在J2ME中这个问题更加突出。你应该把你的应用程序放到手机上去测试这个问题而不是在模拟器上。 <BR><BR>
<LI>IO不用我说你也必须清楚，在J2ME中提供的IO包中，类比较少你更应该注意。<BR><BR>
<LI>不要因为听说手机资源受限，在写程序的时候就顾虑重重，不要牺牲代码的可读性和可维护性，但是也不能乱用。这个时候你的java语言的基础起到了重要的作用！ <BR><BR>
<LI>如果想开发游戏，那么你应该多读相关的书籍。我这里一本J2ME游戏开发的书籍（电子版).想看的话可以email联系我,<A href="http://javap2p.nease.net/book/j2me_gamingbook_pdf.zip" target=_blank><FONT color=#666666>http://javap2p.nease.net/book/j2me_gamingbook_pdf.zip</FONT></A> <BR><BR>
<LI>如果有些问题想了很久都没有明白的话，可以到论坛上去问问，但是不要一有问题就问，自己思考后得到正确答案效果更好。或者把问题放下几天，也许自然而然就明白了！不是胡说。 <BR><BR>
<LI>多写代码!多多总结！简单的八个字，非常重要:)</LI></OL><img src ="http://www.blogjava.net/konhon/aggbug/12044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-05 16:04 <a href="http://www.blogjava.net/konhon/archive/2005/09/05/12044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2me--RecordStore</title><link>http://www.blogjava.net/konhon/archive/2005/09/02/11841.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Fri, 02 Sep 2005 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/02/11841.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/11841.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/02/11841.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/11841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/11841.html</trackback:ping><description><![CDATA[RecordStore是已byte陣列存儲的.所以需要將整個物件序列化成byte 陣列存入紀錄倉儲，也可以從資料倉儲之中讀入一個byte 陣列，然後將其回復成原本物件內部的狀態。<BR>在此我們要借助四個類別的協助，他們分別是：<BR>ByteArrayOutputStream、ByteArrayInputStream、<BR>DataOutputStream、DataInputStream。<BR><BR>轉換例子如下:<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">import&nbsp;java.io.ByteArrayInputStream;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;java.io.ByteArrayOutputStream;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;java.io.DataInputStream;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;java.io.DataOutputStream;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_165_1013_Open_Image onclick="this.style.display='none'; Codehighlighter1_165_1013_Open_Text.style.display='none'; Codehighlighter1_165_1013_Closed_Image.style.display='inline'; Codehighlighter1_165_1013_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_165_1013_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_165_1013_Closed_Text.style.display='none'; Codehighlighter1_165_1013_Open_Image.style.display='inline'; Codehighlighter1_165_1013_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;FriendData&nbsp;</SPAN><SPAN id=Codehighlighter1_165_1013_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_165_1013_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;tel;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;sex;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;age;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_243_310_Open_Image onclick="this.style.display='none'; Codehighlighter1_243_310_Open_Text.style.display='none'; Codehighlighter1_243_310_Closed_Image.style.display='inline'; Codehighlighter1_243_310_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_243_310_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_243_310_Closed_Text.style.display='none'; Codehighlighter1_243_310_Open_Image.style.display='inline'; Codehighlighter1_243_310_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;FriendData()&nbsp;</SPAN><SPAN id=Codehighlighter1_243_310_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_243_310_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">NO&nbsp;NAME</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tel&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">NO&nbsp;TEL</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sex&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;age&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_337_688_Open_Image onclick="this.style.display='none'; Codehighlighter1_337_688_Open_Text.style.display='none'; Codehighlighter1_337_688_Closed_Image.style.display='inline'; Codehighlighter1_337_688_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_337_688_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_337_688_Closed_Text.style.display='none'; Codehighlighter1_337_688_Open_Image.style.display='inline'; Codehighlighter1_337_688_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[]&nbsp;encode()&nbsp;</SPAN><SPAN id=Codehighlighter1_337_688_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_337_688_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[]&nbsp;result&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG id=Codehighlighter1_369_642_Open_Image onclick="this.style.display='none'; Codehighlighter1_369_642_Open_Text.style.display='none'; Codehighlighter1_369_642_Closed_Image.style.display='inline'; Codehighlighter1_369_642_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_369_642_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_369_642_Closed_Text.style.display='none'; Codehighlighter1_369_642_Open_Image.style.display='inline'; Codehighlighter1_369_642_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_369_642_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_369_642_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;bos&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ByteArrayOutputStream();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream&nbsp;dos&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataOutputStream(bos);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.writeUTF(name);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.writeUTF(tel);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.writeBoolean(sex);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.writeInt(age);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;bos.toByteArray();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dos.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bos.close();<BR><IMG id=Codehighlighter1_664_668_Open_Image onclick="this.style.display='none'; Codehighlighter1_664_668_Open_Text.style.display='none'; Codehighlighter1_664_668_Closed_Image.style.display='inline'; Codehighlighter1_664_668_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_664_668_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_664_668_Closed_Text.style.display='none'; Codehighlighter1_664_668_Open_Image.style.display='inline'; Codehighlighter1_664_668_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_664_668_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_664_668_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;result;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_724_1011_Open_Image onclick="this.style.display='none'; Codehighlighter1_724_1011_Open_Text.style.display='none'; Codehighlighter1_724_1011_Closed_Image.style.display='inline'; Codehighlighter1_724_1011_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_724_1011_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_724_1011_Closed_Text.style.display='none'; Codehighlighter1_724_1011_Open_Image.style.display='inline'; Codehighlighter1_724_1011_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;decode(</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[]&nbsp;data)&nbsp;</SPAN><SPAN id=Codehighlighter1_724_1011_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_724_1011_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_732_982_Open_Image onclick="this.style.display='none'; Codehighlighter1_732_982_Open_Text.style.display='none'; Codehighlighter1_732_982_Closed_Image.style.display='inline'; Codehighlighter1_732_982_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_732_982_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_732_982_Closed_Text.style.display='none'; Codehighlighter1_732_982_Open_Image.style.display='inline'; Codehighlighter1_732_982_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_732_982_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_732_982_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayInputStream&nbsp;bis&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ByteArrayInputStream(data);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream&nbsp;dis&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataInputStream(bis);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;dis.readUTF();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tel&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;dis.readUTF();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sex&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;dis.readBoolean();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;age&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;dis.readInt();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dis.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bis.close();<BR><IMG id=Codehighlighter1_1004_1008_Open_Image onclick="this.style.display='none'; Codehighlighter1_1004_1008_Open_Text.style.display='none'; Codehighlighter1_1004_1008_Closed_Image.style.display='inline'; Codehighlighter1_1004_1008_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1004_1008_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1004_1008_Closed_Text.style.display='none'; Codehighlighter1_1004_1008_Open_Image.style.display='inline'; Codehighlighter1_1004_1008_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1004_1008_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1004_1008_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV><img src ="http://www.blogjava.net/konhon/aggbug/11841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-02 15:21 <a href="http://www.blogjava.net/konhon/archive/2005/09/02/11841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在J2me中的按鍵處理</title><link>http://www.blogjava.net/konhon/archive/2005/09/01/11768.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Thu, 01 Sep 2005 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/01/11768.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/11768.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/01/11768.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/11768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/11768.html</trackback:ping><description><![CDATA[<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">import&nbsp;javax.microedition.lcdui.Canvas;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;javax.microedition.lcdui.Display;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;javax.microedition.lcdui.Graphics;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;javax.microedition.midlet.MIDlet;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>import&nbsp;javax.microedition.midlet.MIDletStateChangeException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_268_1429_Open_Image onclick="this.style.display='none'; Codehighlighter1_268_1429_Open_Text.style.display='none'; Codehighlighter1_268_1429_Closed_Image.style.display='inline'; Codehighlighter1_268_1429_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_268_1429_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_268_1429_Closed_Text.style.display='none'; Codehighlighter1_268_1429_Open_Image.style.display='inline'; Codehighlighter1_268_1429_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;LLEventMIDlet&nbsp;extends&nbsp;MIDlet&nbsp;</SPAN><SPAN id=Codehighlighter1_268_1429_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_268_1429_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">private</SPAN><SPAN style="COLOR: #000000">&nbsp;Display&nbsp;display;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_321_415_Open_Image onclick="this.style.display='none'; Codehighlighter1_321_415_Open_Text.style.display='none'; Codehighlighter1_321_415_Closed_Image.style.display='inline'; Codehighlighter1_321_415_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_321_415_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_321_415_Closed_Text.style.display='none'; Codehighlighter1_321_415_Open_Image.style.display='inline'; Codehighlighter1_321_415_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;LLEventMIDlet()&nbsp;</SPAN><SPAN id=Codehighlighter1_321_415_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_321_415_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;Display.getDisplay(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_479_577_Open_Image onclick="this.style.display='none'; Codehighlighter1_479_577_Open_Text.style.display='none'; Codehighlighter1_479_577_Closed_Image.style.display='inline'; Codehighlighter1_479_577_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_479_577_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_479_577_Closed_Text.style.display='none'; Codehighlighter1_479_577_Open_Image.style.display='inline'; Codehighlighter1_479_577_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;startApp()&nbsp;throws&nbsp;MIDletStateChangeException&nbsp;</SPAN><SPAN id=Codehighlighter1_479_577_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_479_577_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyCanvas&nbsp;mc&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;MyCanvas();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.setCurrent(mc);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_607_648_Open_Image onclick="this.style.display='none'; Codehighlighter1_607_648_Open_Text.style.display='none'; Codehighlighter1_607_648_Closed_Image.style.display='inline'; Codehighlighter1_607_648_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_607_648_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_607_648_Closed_Text.style.display='none'; Codehighlighter1_607_648_Open_Image.style.display='inline'; Codehighlighter1_607_648_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;pauseApp()&nbsp;</SPAN><SPAN id=Codehighlighter1_607_648_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_607_648_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_726_767_Open_Image onclick="this.style.display='none'; Codehighlighter1_726_767_Open_Text.style.display='none'; Codehighlighter1_726_767_Closed_Image.style.display='inline'; Codehighlighter1_726_767_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_726_767_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_726_767_Closed_Text.style.display='none'; Codehighlighter1_726_767_Open_Image.style.display='inline'; Codehighlighter1_726_767_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;destroyApp(boolean&nbsp;arg0)&nbsp;throws&nbsp;MIDletStateChangeException&nbsp;</SPAN><SPAN id=Codehighlighter1_726_767_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_726_767_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_809_1426_Open_Image onclick="this.style.display='none'; Codehighlighter1_809_1426_Open_Text.style.display='none'; Codehighlighter1_809_1426_Closed_Image.style.display='inline'; Codehighlighter1_809_1426_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_809_1426_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_809_1426_Closed_Text.style.display='none'; Codehighlighter1_809_1426_Open_Image.style.display='inline'; Codehighlighter1_809_1426_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;MyCanvas&nbsp;extends&nbsp;Canvas&nbsp;</SPAN><SPAN id=Codehighlighter1_809_1426_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_809_1426_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;action&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_866_1132_Open_Image onclick="this.style.display='none'; Codehighlighter1_866_1132_Open_Text.style.display='none'; Codehighlighter1_866_1132_Closed_Image.style.display='inline'; Codehighlighter1_866_1132_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_866_1132_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_866_1132_Closed_Text.style.display='none'; Codehighlighter1_866_1132_Open_Image.style.display='inline'; Codehighlighter1_866_1132_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;paint(Graphics&nbsp;g)&nbsp;</SPAN><SPAN id=Codehighlighter1_866_1132_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_866_1132_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(</SPAN><SPAN style="COLOR: #000000">255</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">255</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">255</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.fillRect(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;getWidth(),&nbsp;getHeight());<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_994_1038_Open_Image onclick="this.style.display='none'; Codehighlighter1_994_1038_Open_Text.style.display='none'; Codehighlighter1_994_1038_Closed_Image.style.display='inline'; Codehighlighter1_994_1038_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_994_1038_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_994_1038_Closed_Text.style.display='none'; Codehighlighter1_994_1038_Open_Image.style.display='inline'; Codehighlighter1_994_1038_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(hasRepeatEvents())&nbsp;</SPAN><SPAN id=Codehighlighter1_994_1038_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_994_1038_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawString(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Repeat</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_1045_1092_Open_Image onclick="this.style.display='none'; Codehighlighter1_1045_1092_Open_Text.style.display='none'; Codehighlighter1_1045_1092_Closed_Image.style.display='inline'; Codehighlighter1_1045_1092_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1045_1092_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1045_1092_Closed_Text.style.display='none'; Codehighlighter1_1045_1092_Open_Image.style.display='inline'; Codehighlighter1_1045_1092_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_1045_1092_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1045_1092_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawString(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">NonRepeat</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawString(action,&nbsp;</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_1174_1228_Open_Image onclick="this.style.display='none'; Codehighlighter1_1174_1228_Open_Text.style.display='none'; Codehighlighter1_1174_1228_Closed_Image.style.display='inline'; Codehighlighter1_1174_1228_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1174_1228_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1174_1228_Closed_Text.style.display='none'; Codehighlighter1_1174_1228_Open_Image.style.display='inline'; Codehighlighter1_1174_1228_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;keyPressed(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;keyCode)</SPAN><SPAN id=Codehighlighter1_1174_1228_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1174_1228_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">KP:&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">)keyCode;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repaint();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_1271_1325_Open_Image onclick="this.style.display='none'; Codehighlighter1_1271_1325_Open_Text.style.display='none'; Codehighlighter1_1271_1325_Closed_Image.style.display='inline'; Codehighlighter1_1271_1325_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1271_1325_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1271_1325_Closed_Text.style.display='none'; Codehighlighter1_1271_1325_Open_Image.style.display='inline'; Codehighlighter1_1271_1325_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;keyReleased(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;keyCode)</SPAN><SPAN id=Codehighlighter1_1271_1325_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1271_1325_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">KR:&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">)keyCode;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repaint();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_1368_1423_Open_Image onclick="this.style.display='none'; Codehighlighter1_1368_1423_Open_Text.style.display='none'; Codehighlighter1_1368_1423_Closed_Image.style.display='inline'; Codehighlighter1_1368_1423_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1368_1423_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1368_1423_Closed_Text.style.display='none'; Codehighlighter1_1368_1423_Open_Image.style.display='inline'; Codehighlighter1_1368_1423_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;keyRepeated(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;keyCode)</SPAN><SPAN id=Codehighlighter1_1368_1423_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1368_1423_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">KRe:&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">)keyCode;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repaint();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV><BR><BR>在MIDP 1.0 規格中，Canvas 類別裡頭定義了幾個常數，他們分<BR>別是： KEY_NUM0 、KEY_NUM1 、KEY_NUM2 、KEY_NUM3 、KEY_NUM4 、KEY_NUM5 、KEY_NUM6 、KEY_NUM7 、KEY_ NUM8 、KEY_NUM9 、KEY_STAR、KEY_POUND 共11 個，分別代表0~9 的數字鍵、星號鍵、以及井號鍵。我們可以利用這幾個常數判定鍵盤（按鈕）事件處理函式所傳進來的keyCode，藉以了解哪個按鈕被按下了，當然，除了這些按鍵之外，其他的按鍵也會有其對應值，您必須自己嘗試找出來，但是為了可以跨平台，建議您僅只使用這些標準的定義鍵。<BR><BR>為了Game 設計師的方便，MIDP 1.0 規格中，Canvas 類別裡頭定義了幾個與Game 鍵盤代碼相關的常數，他們分別是UP、DOWN、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D。這些定義雖然很可能會和之前的定義有所重複，但是因為有了一層抽象性，在移植的時候也就方便多了。<BR><BR>那麼，在程式裡頭該如何處理呢? Canvas 裡頭提供了兩個函式:<BR>1. getGameAction() 􀂌 傳入keyCode，函式會回傳所代表的<BR>Game 鍵盤代碼。<BR>用法如下：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;keyPressed(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;keyCode)<BR><IMG id=Codehighlighter1_36_155_Open_Image onclick="this.style.display='none'; Codehighlighter1_36_155_Open_Text.style.display='none'; Codehighlighter1_36_155_Closed_Image.style.display='inline'; Codehighlighter1_36_155_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_36_155_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_36_155_Closed_Text.style.display='none'; Codehighlighter1_36_155_Open_Image.style.display='inline'; Codehighlighter1_36_155_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_36_155_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_36_155_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">switch</SPAN><SPAN style="COLOR: #000000">(getGameAction(keyCode))<BR><IMG id=Codehighlighter1_69_153_Open_Image onclick="this.style.display='none'; Codehighlighter1_69_153_Open_Text.style.display='none'; Codehighlighter1_69_153_Closed_Image.style.display='inline'; Codehighlighter1_69_153_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_69_153_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_69_153_Closed_Text.style.display='none'; Codehighlighter1_69_153_Open_Image.style.display='inline'; Codehighlighter1_69_153_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_69_153_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_69_153_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">case</SPAN><SPAN style="COLOR: #000000">&nbsp;Canvas.LEFT:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>moveLeft()&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">break</SPAN><SPAN style="COLOR: #000000">&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">case</SPAN><SPAN style="COLOR: #000000">&nbsp;Canvas.FIRE:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>fire()&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">break</SPAN><SPAN style="COLOR: #000000">&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><IMG src="http://www.blogjava.net/images/dot.gif">略<IMG src="http://www.blogjava.net/images/dot.gif"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV></DIV><BR><BR>2. getKeyCode() 􀂌 傳入Game 鍵盤代碼，函式會回傳所代表的<BR>keyCode。<BR>用法如下：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;keyPressed(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;keyCode)<BR><IMG id=Codehighlighter1_36_158_Open_Image onclick="this.style.display='none'; Codehighlighter1_36_158_Open_Text.style.display='none'; Codehighlighter1_36_158_Closed_Image.style.display='inline'; Codehighlighter1_36_158_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_36_158_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_36_158_Closed_Text.style.display='none'; Codehighlighter1_36_158_Open_Image.style.display='inline'; Codehighlighter1_36_158_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_36_158_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_36_158_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(keyCode&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;getKeyCode(Canvas.LEFT))<BR><IMG id=Codehighlighter1_77_92_Open_Image onclick="this.style.display='none'; Codehighlighter1_77_92_Open_Text.style.display='none'; Codehighlighter1_77_92_Closed_Image.style.display='inline'; Codehighlighter1_77_92_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_77_92_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_77_92_Closed_Text.style.display='none'; Codehighlighter1_77_92_Open_Image.style.display='inline'; Codehighlighter1_77_92_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_77_92_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_77_92_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>moveLeft()&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(keyCode&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;getKeyCode(Canvas.FIRE))<BR><IMG id=Codehighlighter1_137_148_Open_Image onclick="this.style.display='none'; Codehighlighter1_137_148_Open_Text.style.display='none'; Codehighlighter1_137_148_Closed_Image.style.display='inline'; Codehighlighter1_137_148_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_137_148_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_137_148_Closed_Text.style.display='none'; Codehighlighter1_137_148_Open_Image.style.display='inline'; Codehighlighter1_137_148_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_137_148_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_137_148_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>fire()&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><IMG src="http://www.blogjava.net/images/dot.gif">略<IMG src="http://www.blogjava.net/images/dot.gif"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV></DIV>任選任何一種方法，都可以達到跨平台的目的。<img src ="http://www.blogjava.net/konhon/aggbug/11768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-01 17:19 <a href="http://www.blogjava.net/konhon/archive/2005/09/01/11768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2me中Command出現的優先順序</title><link>http://www.blogjava.net/konhon/archive/2005/09/01/11764.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Thu, 01 Sep 2005 08:10:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/01/11764.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/11764.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/01/11764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/11764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/11764.html</trackback:ping><description><![CDATA[其實這是有一套規格可循的。規則如下：<BR><BR>1. 先比較每個Command 物件的命令型態，優先順序越高的越先出現。<BR>在Command 物件之中共定義了八種命令型態，從優先順序最高到最低列表如下：<BR><STRONG>Command.BACK<BR>Command.CANCEL<BR>Command.EXIT<BR>Command.HELP<BR>Command.ITEM<BR>Command.OK<BR>Command.SCREEN<BR>Command.STOP</STRONG><BR><BR>2. 如果命令型態相同，就比較其優先權，設定值越低的越先出現。<BR><BR>3. 如果優先權相同，就以利用addCommand()加入畫面的先後順序決定。<BR><img src ="http://www.blogjava.net/konhon/aggbug/11764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-01 16:10 <a href="http://www.blogjava.net/konhon/archive/2005/09/01/11764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>native2ascii详解</title><link>http://www.blogjava.net/konhon/archive/2005/09/01/11755.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Thu, 01 Sep 2005 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/01/11755.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/11755.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/01/11755.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/11755.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/11755.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 align=right border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 align=left border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>转载自：www.csdn.net<BR><BR>java程序显示中文是大家都遇到过的问题，尤其是JAD文件的中文问题，一般都用native2ascii工具转换，这里收藏了native2ascii工具的详细说明：<BR><BR><BR>native2ascii&nbsp;-&nbsp;Native-to-ASCII&nbsp;Converter<BR>Converts&nbsp;a&nbsp;file&nbsp;with&nbsp;native-encoded&nbsp;characters&nbsp;(characters&nbsp;which&nbsp;are&nbsp;non-Latin&nbsp;1&nbsp;and&nbsp;non-Unicode)&nbsp;to&nbsp;one&nbsp;with&nbsp;Unicode-encoded&nbsp;characters.&nbsp;<BR>SYNOPSIS<BR>native2ascii&nbsp;[options]&nbsp;[inputfile&nbsp;[outputfile]]<BR><BR>DESCRIPTION<BR>The&nbsp;Java&nbsp;compiler&nbsp;and&nbsp;other&nbsp;Java&nbsp;tools&nbsp;can&nbsp;only&nbsp;process&nbsp;files&nbsp;which&nbsp;contain&nbsp;Latin-1&nbsp;and/or&nbsp;Unicode-encoded&nbsp;(\udddd&nbsp;notation)&nbsp;characters.&nbsp;native2ascii&nbsp;converts&nbsp;files&nbsp;which&nbsp;contain&nbsp;other<BR>&nbsp;character&nbsp;encodings&nbsp;into&nbsp;files&nbsp;containing&nbsp;Latin-1&nbsp;and/or&nbsp;Unicode-encoded&nbsp;charaters.&nbsp;<BR>If&nbsp;outputfile&nbsp;is&nbsp;omitted,&nbsp;standard&nbsp;output&nbsp;is&nbsp;used&nbsp;for&nbsp;output.&nbsp;If,&nbsp;in&nbsp;addition,&nbsp;inputfile&nbsp;is&nbsp;<BR>omitted,&nbsp;standard&nbsp;input&nbsp;is&nbsp;used&nbsp;for&nbsp;input.&nbsp;<BR><BR>OPTIONS<BR>-reverse&nbsp;<BR>Perform&nbsp;the&nbsp;reverse&nbsp;operation:&nbsp;convert&nbsp;a&nbsp;file&nbsp;with&nbsp;Latin-1&nbsp;and/or&nbsp;Unicode&nbsp;encoded&nbsp;characters&nbsp;to&nbsp;one&nbsp;with&nbsp;native-encoded&nbsp;characters.&nbsp;<BR><BR><BR>-encoding&nbsp;encoding_name&nbsp;<BR>Specify&nbsp;the&nbsp;encoding&nbsp;name&nbsp;which&nbsp;is&nbsp;used&nbsp;by&nbsp;the&nbsp;conversion&nbsp;procedure.&nbsp;<BR>The&nbsp;default&nbsp;encoding&nbsp;is&nbsp;taken&nbsp;from&nbsp;System&nbsp;property&nbsp;file.encoding.&nbsp;<BR>The&nbsp;encoding_name&nbsp;string&nbsp;must&nbsp;be&nbsp;a&nbsp;string&nbsp;taken&nbsp;from&nbsp;the&nbsp;first&nbsp;column&nbsp;of&nbsp;the&nbsp;table&nbsp;<BR>below.&nbsp;<BR><BR><BR>-------------------------------------------------------------<BR><BR>Converter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Description<BR>Class<BR>-------------------------------------------------------------<BR><BR>8859_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-1<BR>8859_2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-2<BR>8859_3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-3<BR>8859_4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-4<BR>8859_5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-5<BR>8859_6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-6<BR>8859_7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-7<BR>8859_8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-8<BR>8859_9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;8859-9<BR>Big5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Big5,&nbsp;Traditional&nbsp;Chinese<BR>CNS11643&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CNS&nbsp;11643,&nbsp;Traditional&nbsp;Chinese<BR>Cp037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USA,&nbsp;Canada(Bilingual,&nbsp;French),&nbsp;Netherlands,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Portugal,&nbsp;Brazil,&nbsp;Australia<BR>Cp1006&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;AIX&nbsp;Pakistan&nbsp;(Urdu)<BR>Cp1025&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Multilingual&nbsp;Cyrillic:&nbsp;Bulgaria,&nbsp;Bosnia,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Herzegovinia,&nbsp;Macedonia(FYR)<BR>Cp1026&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Latin-5,&nbsp;Turkey<BR>Cp1046&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Open&nbsp;Edition&nbsp;US&nbsp;EBCDIC<BR>Cp1097&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Iran(Farsi)/Persian<BR>Cp1098&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Iran(Farsi)/Persian&nbsp;(PC)<BR>Cp1112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Latvia,&nbsp;Lithuania<BR>Cp1122&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Estonia<BR>Cp1123&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Ukraine<BR>Cp1124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;AIX&nbsp;Ukraine<BR>Cp1125&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Ukraine&nbsp;(PC)<BR>Cp1250&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Eastern&nbsp;European<BR>Cp1251&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Cyrillic<BR>Cp1252&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Latin-1<BR>Cp1253&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Greek<BR>Cp1254&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Turkish<BR>Cp1255&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Hebrew<BR>Cp1256&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Arabic<BR>Cp1257&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Baltic<BR>Cp1258&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Vietnamese<BR>Cp1381&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;OS/2,&nbsp;DOS&nbsp;People's&nbsp;Republic&nbsp;of&nbsp;China&nbsp;(PRC)<BR>Cp1383&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;AIX&nbsp;People's&nbsp;Republic&nbsp;of&nbsp;China&nbsp;(PRC)<BR>Cp273&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Austria,&nbsp;Germany<BR>Cp277&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Denmark,&nbsp;Norway<BR>Cp278&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Finland,&nbsp;Sweden<BR>Cp280&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Italy<BR>Cp284&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Catalan/Spain,&nbsp;Spanish&nbsp;Latin&nbsp;America<BR>Cp285&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;United&nbsp;Kingdom,&nbsp;Ireland<BR>Cp297&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;France<BR>Cp33722&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM-eucJP&nbsp;-&nbsp;Japanese&nbsp;(superset&nbsp;of&nbsp;5050)<BR>Cp420&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Arabic<BR>Cp424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Hebrew<BR>Cp437&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;United&nbsp;States,&nbsp;Australia,&nbsp;New&nbsp;Zealand,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;South&nbsp;Africa<BR>Cp500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EBCDIC&nbsp;500V1<BR>Cp737&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC&nbsp;Greek<BR>Cp775&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC&nbsp;Baltic<BR>Cp838&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Thailand&nbsp;extended&nbsp;SBCS<BR>Cp850&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Latin-1<BR>Cp852&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Latin-2<BR>Cp855&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Cyrillic<BR>Cp857&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Turkish<BR>Cp860&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Portuguese<BR>Cp861&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Icelandic<BR>Cp862&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC&nbsp;Hebrew<BR>Cp863&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Canadian&nbsp;French<BR>Cp864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC&nbsp;Arabic<BR>Cp865&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Nordic<BR>Cp866&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Russian<BR>Cp868&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MS-DOS&nbsp;Pakistan<BR>Cp869&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Modern&nbsp;Greek<BR>Cp870&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Multilingual&nbsp;Latin-2<BR>Cp871&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Iceland<BR>Cp874&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Thai<BR>Cp875&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Greek<BR>Cp918&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Pakistan(Urdu)<BR>Cp921&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Latvia,&nbsp;Lithuania&nbsp;(AIX,&nbsp;DOS)<BR>Cp922&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM&nbsp;Estonia&nbsp;(AIX,&nbsp;DOS)<BR>Cp930&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Japanese&nbsp;Katakana-Kanji&nbsp;mixed&nbsp;with&nbsp;4370&nbsp;UDC,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;superset&nbsp;of&nbsp;5026<BR>Cp933&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Korean&nbsp;Mixed&nbsp;with&nbsp;1880&nbsp;UDC,&nbsp;superset&nbsp;of&nbsp;5029<BR>Cp935&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Simplified&nbsp;Chinese&nbsp;Host&nbsp;mixed&nbsp;with&nbsp;1880&nbsp;UDC,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;superset&nbsp;of&nbsp;5031<BR>Cp937&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traditional&nbsp;Chinese&nbsp;Host&nbsp;miexed&nbsp;with&nbsp;6204&nbsp;UDC,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;superset&nbsp;of&nbsp;5033<BR>Cp939&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Japanese&nbsp;Latin&nbsp;Kanji&nbsp;mixed&nbsp;with&nbsp;4370&nbsp;UDC,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;superset&nbsp;of&nbsp;5035<BR>Cp942&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Japanese&nbsp;(OS/2)&nbsp;superset&nbsp;of&nbsp;932<BR>Cp948&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS/2&nbsp;Chinese&nbsp;(Taiwan)&nbsp;superset&nbsp;of&nbsp;938<BR>Cp949&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC&nbsp;Korean<BR>Cp950&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC&nbsp;Chinese&nbsp;(Hong&nbsp;Kong,&nbsp;Taiwan)<BR>Cp964&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AIX&nbsp;Chinese&nbsp;(Taiwan)<BR>Cp970&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AIX&nbsp;Korean<BR>EUCJIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JIS,&nbsp;EUC&nbsp;Encoding,&nbsp;Japanese<BR>GB2312&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GB2312,&nbsp;EUC&nbsp;encoding,&nbsp;Simplified&nbsp;Chinese<BR>GBK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GBK,&nbsp;Simplified&nbsp;Chinese<BR>ISO2022CN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;2022&nbsp;CN,&nbsp;Chinese<BR>ISO2022CN_CNS&nbsp;&nbsp;&nbsp;&nbsp;CNS&nbsp;11643&nbsp;in&nbsp;ISO-2022-CN&nbsp;form,&nbsp;T.&nbsp;Chinese<BR>ISO2022CN_GB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GB&nbsp;2312&nbsp;in&nbsp;ISO-2022-CN&nbsp;form,&nbsp;S.&nbsp;Chinese<BR>ISO2022KR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISO&nbsp;2022&nbsp;KR,&nbsp;Korean<BR>JIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JIS,&nbsp;Japanese<BR>JIS0208&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JIS&nbsp;0208,&nbsp;Japanese<BR>KOI8_R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KOI8-R,&nbsp;Russian<BR>KSC5601&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KS&nbsp;C&nbsp;5601,&nbsp;Korean<BR>MS874&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows&nbsp;Thai<BR>MacArabic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Arabic<BR>MacCentralEurope&nbsp;Macintosh&nbsp;Latin-2<BR>MacCroatian&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Croatian<BR>MacCyrillic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Cyrillic<BR>MacDingbat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Dingbat<BR>MacGreek&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Greek<BR>MacHebrew&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Hebrew<BR>MacIceland&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Iceland<BR>MacRoman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Roman<BR>MacRomania&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Romania<BR>MacSymbol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Symbol<BR>MacThai&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Thai<BR>MacTurkish&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Turkish<BR>MacUkraine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Macintosh&nbsp;Ukraine<BR>SJIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shift-JIS,&nbsp;Japanese<BR>UTF8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UTF-8<BR><BR><BR>不过WTK可以直接解决JAD的中文问题：<BR>&nbsp;&nbsp;&nbsp;&nbsp;settings&gt;MidLets&gt;MidLet-1属性改成你想要显示的中文后重新生成JAD和JAR文件即可。<BR><img src ="http://www.blogjava.net/konhon/aggbug/11755.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-01 15:10 <a href="http://www.blogjava.net/konhon/archive/2005/09/01/11755.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2me内存优化</title><link>http://www.blogjava.net/konhon/archive/2005/09/01/11700.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Thu, 01 Sep 2005 00:10:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/01/11700.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/11700.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/01/11700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/11700.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/11700.html</trackback:ping><description><![CDATA[out momory 一阵天旋地转内存又溢出了。在手机上这种痛苦经常都有，套一句俗话在手机上用内存必须勒紧裤腰带。虽然现在pc内存上G都不奇怪,可是在手机上却只能以K来记,可能某位同志会马上跳出来说也有上M的，记住中国还不富大多数手机都是低端手机。写手机程序让我仿佛回到了dos时代（自我安慰一下那个时代也炼出了不少高手说不定我是下一个）。言归正传做内存优化可以归结为以下几种方法。代码优化，图片优化，第三方工具优化等…<BR><BR><B>一．代码优化</B> <BR>内存会溢出肯定和代码逃不了关系,99.99%学java的人都知道垃圾回收器是java的一大优点并据此来嘲笑C++。显然这个特性为代码编写者省了不少事，但这个特性却带来了不少隐患。举个例子在游戏当中经常有不同场景的切换，如从游戏逻辑退到主菜单逻辑,对游戏逻辑对象的态度很多人会选择忘记等待垃圾回收器来收尸^_^。乍看之下似乎并无不妥垃圾回收器会来善后。实际上垃圾回收器并非实时的,它不像C++的Delete语句马上释放不用的内存。当从游戏逻辑切换到主菜单逻辑这时两个对象同时存在很可能这时内存就不够用了。读到这里很多人会发现实际上垃圾回收器在j2me上并不怎么好用，从一个角度上来讲在j2me上所有垃圾必须由手工释放,除简单类型以外所有对象都必须显式地置空例如 imgs=null; 实际上java提供了一个不错的工具用来查找内存溢出,java.lang.Runtime.freeMemory() 。它可以返回当前的剩余内存数，将它适当的安放在代码中可以有效的监测内存使用状况。很大一部份的j2me程序员之前都是从事pc软件开发工作，充裕的内存掩盖了许多写代码的不良习惯。如下所示:<BR>//a 不为空<BR>a=new Logic();<BR>很多人可能对此有异议，他们会认为新的对象会把旧的对象冲掉并且释放内存。这里面包含两个问题：1. 该段代码是先创建对象然后再进行赋值操作的，也就是说在这期间有两个对象同时存在这就很可能会产生溢出。2. 这样做也会妨碍垃圾回收器的工作<BR>较好的写法如下:<BR>a=null;<BR>a=new Logic(); <BR>虽然麻烦了点但在j2me中还是必要的。接着看下例。<BR>drawString("游戏时间:" + time ,50,50,Graphics.LEFT|Graphics.TOP);<BR>"游戏时间:" + time 很完美在paint()方法当中每次都被刷一遍显示在屏幕上。危机往往隐藏在美丽的外表，该语句会引起新的内存重新分配来存储 "游戏时间:" + time 而显示完以后又必须由垃圾回收器释放，用了双倍时间,并且容易发生内存溢出。依此类推在重复执行的方法里应尽量避免重复定义对象。与paint()方法类似在循环里也有类似的情况存在。 <BR>把所有对象的初始化放在构造函数里想必是再正当不过了,大多数人通常的做法是把当前逻辑所要用到的资源通通初始化完毕。<BR>很大一部份的内存溢出都是发生在构造函数中。内存使用的高峰期都是在构造函数中所以避开这个高峰能有效的防止溢出。建议最好的办法是第一次使用时初始化。如下所示<BR>if (img==null){<BR>//初始化<BR>}<BR>现在做游戏很多时候都需要地图数组，声音数组，还有一些其它资源这些资源很多可以放在代码中也有的可以放在文件当中。<BR>强烈建议将这些资源放在文件中需要时在load进来。这些资源文件如果放在代码中则会占用不小的代码段空间，而代码一般是程序一运行就装载到内存当中。<BR>除上面列举的方法外还有一些大家所熟知的顺便一提, 比如关闭没用的rms ，关闭没用的网络连接，关闭没用的流。正确地停止线程。良好的程序架构减少代码偶合性也是一个不错的方法，无论在代码调式，内存释放都可以做到非常清析。<BR><BR><B>二. 图片优化</B><BR>j2me的内存杀手无疑非图片莫属,一张3k的图片可以占用20多k的内存不信大家把load前后的内存剩余打印出来对比看看。所以防止内存溢出最直接的办法就是从图片入手。<BR>1．图片压缩: 多数人马上会想到这个办法。不错这个办法是最有效的。在photoshop里图片制作完成后不要选择 "存储为"，而是选择 "存储为 web 所用格式" 可以根据里面的选项进行压缩，特别是颜色这一项越小越好不过相应的图像会有所失真。不要认为这样就完了。<BR>实际上该图片还可以再次压缩，在网上有许多类似的工具。推荐一款可以压缩png格式的软件 xat.com Image Optimizer 效果不错。经常都有 70% 的压缩率且图像不会失真。<BR>假如你有多张规格一样的图片，那么建议你把它做成一张长条图片。有两个原因： <BR>1、 这样节省存储空间和内存空间。大家可做个试验将10张图片的内容放在一张当中对比看看文件大小有没有变化。<BR>2 、10张图片需要10个image 对象需要进行10次io操作浪费时间不说还浪费内存。当笔者发现这个好处时兴奋地把所有图片都存成一张，吱地一声内存又溢出了...原因想必大家也知道!！图片太大了不要把不同界面的图片整合在一起否则经常会得不偿失。<BR>作图时还有一些细节需要注意,颜色数量，分辩率，图像模式（最好是索引颜色),画布大小都会影响到图片大小。<BR><BR><B>三． 工具优化</B><BR>谁都知道混淆器是用来保护代码的以加大反编译的难度(个人认为这是在嘲笑程序员的智商）。实际上用它来优化程序也是不错的选择，至少有两点好处：1、 压缩程序大小。一个60k的程序经常可以压掉10k左右。10k的空间对于写低端手机的程序员简直是雪中送碳，多少超过64k限制的游戏都受过它的恩惠；2、节省内存空间。用脚去想也想得出来代码少了内存里的代码段自然就短了。<BR>根据经验很多人都会用jb自带的混淆器RetroGuard，实际上它效果并不怎么好。推荐使用proguard 在 http://sf.net 可以免费下载，它可以比retroguard 多压缩3至4 k 以上而且安全性更好。<BR><img src ="http://www.blogjava.net/konhon/aggbug/11700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-01 08:10 <a href="http://www.blogjava.net/konhon/archive/2005/09/01/11700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2me</title><link>http://www.blogjava.net/konhon/archive/2005/09/01/11699.html</link><dc:creator>konhon 优华</dc:creator><author>konhon 优华</author><pubDate>Thu, 01 Sep 2005 00:09:00 GMT</pubDate><guid>http://www.blogjava.net/konhon/archive/2005/09/01/11699.html</guid><wfw:comment>http://www.blogjava.net/konhon/comments/11699.html</wfw:comment><comments>http://www.blogjava.net/konhon/archive/2005/09/01/11699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/konhon/comments/commentRss/11699.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/konhon/services/trackbacks/11699.html</trackback:ping><description><![CDATA[<P>昨天在網上看到有關J2me的開發, 便想試試.於是下載了開發工具.<BR>eclipse 3.0.1, eclipseme0.4.0安裝一切正常.<BR><BR>安裝後便依照網上寫了一個HelloWorld程序, 運行,怪事出來啦, 模似器一閃,馬上又自動關閉啦. 看不到效果.<BR><BR>今天早上反把eclipse換成3.1的, eclipseme換成1.1.0的, 再試試, 問題居然解決啦, 郁悶呀, Java這東西老是怪問題, 而且大多數都版本不兼容所引起的, 開源這東西雖然好, 可是這開源程序之間的兼容可是個大問題.</P><img src ="http://www.blogjava.net/konhon/aggbug/11699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/konhon/" target="_blank">konhon 优华</a> 2005-09-01 08:09 <a href="http://www.blogjava.net/konhon/archive/2005/09/01/11699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>