⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8.htm

📁 j2me简明教程-初学者的好帮手 绝对好看
💻 HTM
📖 第 1 页 / 共 2 页
字号:
                        src="8.files/menu_dotline.gif" width=138></TD></TR>
                    <TR>
                      <TD width=15>&nbsp;</TD>
                      <TD width=143 height=23><A class=css2 
                        href="http://www.inhand.com.cn/solution/j2me/j2me_9.htm">第九章:MIDP 
                        API</A></TD></TR>
                    <TR>
                      <TD align=middle colSpan=2><IMG height=1 
                        src="8.files/menu_dotline.gif" width=138></TD></TR>
                    <TR>
                      <TD width=15 height=23>&nbsp;</TD>
                      <TD width=143 height=23><A class=css2 
                        href="http://www.inhand.com.cn/solution/j2me/j2me_10.htm">第十章:CDC 
                        API</A></TD></TR>
                    <TR>
                      <TD align=middle colSpan=2><IMG height=1 
                        src="8.files/menu_dotline.gif" width=138></TD></TR>
                    <TR>
                      <TD width=15>&nbsp;</TD>
                      <TD width=143 height=23><A class=css2 
                        href="http://www.inhand.com.cn/solution/j2me/j2me_11.htm">第十一章:总结</A></TD></TR>
                    <TR>
                      <TD align=middle colSpan=2><IMG height=1 
                        src="8.files/menu_dotline.gif" width=138></TD></TR>
                    <TR>
                      <TD align=middle colSpan=2><IMG height=1 
                        src="8.files/menu_dotline.gif" 
                  width=138></TD></TR></TBODY></TABLE></TD>
                <TD width=1 bgColor=#cccccc><IMG height=1 src="8.files/0.gif" 
                  width=1></TD>
                <TD vAlign=top width=594>
                  <TABLE cellSpacing=0 cellPadding=0 width=594 border=0>
                    <TBODY>
                    <TR>
                      <TD width=30><IMG height=21 src="8.files/0.gif" 
                      width=30></TD>
                      <TD width=534>
                        <TABLE cellSpacing=0 cellPadding=0 width=534 border=0>
                          <TBODY>
                          <TR>
                            <TD class=sk height=20><IMG height=20 
                              src="8.files/0.gif" width=20></TD></TR>
                          <TR>
                            <TD class=sk><IMG height=20 
                              src="8.files/cell1_04.jpg" width=100 
                          border=0></TD></TR>
                          <TR>
                            <TD class=sk bgColor=#cccccc><IMG height=1 
                              src="8.files/0.gif" width=1></TD></TR>
                          <TR>
                            <TD class=sk height=20>&nbsp;</TD></TR>
                          <TR>
                            <TD class=sk>
                              <TABLE cellSpacing=0 cellPadding=0 width=527 
                              border=0>
                                <TBODY>
                                <TR>
                                <TD vAlign=top 
                                width=540><B>第八章:使用Kjava事件处理的开发</B> 
                                <UL>
                                <LI><B>介绍</B><BR>在这一章,我们将学习 KJava 
                                事件处理,并用简单的绘图应用程序 Scribble 来示范它是如何工作的。<BR>KJava 
                                事件处理模型不如 J2SE 的 action-listene 模型先进。通过使 Spotlet 
                                类子类化,所有感兴趣的事件都是可访问的,无论怎样,KJava 
                                应用程序都将完成这项工作。目前,只有 spotlet 受到了事件的关注。为了关注 
                                spotlet,我们使用 register()。如要停止,则使用 
                                unregister()。&nbsp;<BR>注意:如果您用 WANT_SYSTEM_KEYS 
                                注册一个 spotlet 
                                ,设备不会通过按下按钮和排队等候停止它的应用程序来自动终止这个应用程序。相反,按下按钮事件会通报这个应用程序,然后负责适当地处理事件。除非当按下按钮时您提供一种通过调用 
                                System.exit 
                                终止应用程序的方法,否则这个应用程序将会继续不确定地运行。唯一能终止这个应用程序的方法就只有重启该设备。<BR>KJava 
                                支持三种基本类型事件:显示屏上笔的移动、键盘输入和电子束定向发送/接收。另外,还有一种全面的包罗万象的方法 
                                -- unknownEvent()。在后面的章节中我们将讨论这些不同的事件类型。 
                                </LI></UL>
                                <P> </P>
                                <UL>
                                <LI><B>处理笔的移动</B><BR>处理 PDA 
                                显示器上笔的移动的事件处理程序有:penDown、penMove 和 
                                penUp。&nbsp;<BR>当用户将笔在显示器上移动时,penDown() 
                                方法将被调用,它传递显示器上笔的放置点的 X 和 Y 轴坐标。<BR>public void 
                                penDown( int x, int y )<BR>当用户在显示器上移动笔时 
                                penMove() 过程将被调用。X 和 Y 轴坐标定义笔的当前位置。<BR>public 
                                void penMove( int x, int y )<BR>当用户将笔从显示器上移开时 
                                penUp() 过程将被调用,它传递两个参数:笔被移开点的 X 和 Y 
                                轴坐标。<BR>public void penUp( int x, int y )&nbsp; 
                                </LI></UL>
                                <P> </P>
                                <UL>
                                <LI><B>处理键盘输入,电子束定向发送/接收,以及未知事件</B><BR>在 J2SE 
                                AWT 中,接口 java.awt.event.KeyListener 包含处理不同键盘事件的 
                                keyPressed、keyReleased 和 keyTyped。与此相比,KJava 
                                则只有一个函数,keyDown()。<BR>如果用户在可书画区写下一个字符,按下计算器或菜单图标,或者是按下任何“硬键”(缺省情况下,Date 
                                Book、Address、page up、page down、To Do List 或是 
                                Memo Pad key )时,事件 keyDown 就会被调用。参数 keyCode 
                                标识用户输入的键的代码。如果按了其中一个“硬键”,事件 keyDown 
                                就开始匹配这个类中定义过的相应常量中的一个。<BR>public void keyDown( 
                                int keyCode )<BR>beamReceive() 方法被用于接收从红外线 Palm 
                                设备传来的数据包。数据以一种字节数组的方式被接收,并用虚拟机自动分配这些数据。<BR>public 
                                static boolean beamReceive( byte[] data 
                                )beamSend() 方法不是一个事件处理程序,但是它显然与 beamReceive() 
                                相关联,所以我们在这儿还是要提一下。这种方法被用来给发送到另一个红外线 Palm 
                                设备的数据包定向。在给数据定向时,您可以调用这个函数,但是目标设备必须在接收数据的 
                                spotlet 中注册一个 beamReceive 处理器。<BR>public static 
                                boolean beamSend( byte[] data )<BR>unknownEvent 
                                是一个常规的所有未知事件处理例程。<BR>public void unknownEvent( 
                                int event, java.io.DataInput in ) </LI></UL>
                                <P> </P>
                                <UL>
                                <LI><B>Scribble 
                                应用程序介绍</B><BR>现在我们了解了事件处理的基础,我们即将进入更为高级一些的 J2ME 
                                开发。在本章中,我们将开发 Scribble 
                                应用程序。我们不会逐行描述代码,但是,我们将描绘重要的代码行和每个方法的目的。您可从参考资料上访问完整的代码清单。<BR>Scribble 
                                应用程序是一个独立的应用程序,示范使用 Sun 公司的 KJava API 开发 Palm 
                                操作系统。Scribble 允许您在显示屏上徒手绘图,或添加想要的正规文本。 
</LI></UL>
                                <P> </P>
                                <UL>
                                <LI><B>开始使用 Scribble</B><BR>在 HelloWorld 
                                应用程序中,我们需要导入 Scribble 应用程序要使用的类。下面是标识被 Scribble 
                                使用的类的文本块:&nbsp;<BR><BR>import 
                                com.sun.kjava.Bitmap;<BR>import 
                                com.sun.kjava.Button;<BR>import 
                                com.sun.kjava.Dialog;<BR>import 
                                com.sun.kjava.Graphics;<BR>import 
                                com.sun.kjava.HelpDisplay;<BR>import 
                                com.sun.kjava.Spotlet;<BR>Scribble 类扩展了 J2SE 
                                中使用的 Spotlet 类。它从定义最终的静态类变量开始。&nbsp;<BR>public 
                                class Scribble extends Spotlet<BR>类变量 g 担当了对单独的 
                                Graphics 对象的引用,该对象在类中始终被使用:&nbsp;<BR><BR>static 
                                Graphics g = Graphics.getGraphics (); </LI></UL>
                                <P> </P>
                                <UL>
                                <LI><B>定义方法和事件处理程序</B><BR>此外,main() 
                                定义了应用程序的主要入口。&nbsp;<BR><BR>public static void 
                                main(String[] args)<BR>默认的构造程序,Scribble 
                                初始化成员变量,清屏并画出初始框架。&nbsp;<BR><BR>public 
                                Scribble()<BR>paint() 方法负责更新或刷新显示。它使用类变量 g -- 一个 
                                Graphics 对象,类似于 Java 2 AWT 中使用的 Graphics 
                                对象。&nbsp;<BR>private void paint()<BR>penDown() 
                                方法执行事件处理程序来处理在屏幕上放置笔的事件。它通过 X 和 Y 坐标来定位。在 
                                Scribble 中,程序测试 Clear 或 Exit 
                                按钮是否被按下,如果按下的话,就处理相应的事件。&nbsp;<BR><BR>public 
                                void penDown(int x, int y)<BR>keyDown() 方法处理那些在 
                                Palm 设备的即兴书画框内随手写下的东西。传送到这个方法中的整型值 keyCode 
                                就是输入的字符键值。在 Scribble 应用程序中,我们存储了成员变量 lastKey 
                                中被按下的键,然后调用 paint() 方法刷新屏幕。&nbsp;<BR>public void 
                                keyDown(int keyCode)<BR>penMove() 
                                方法处理在屏幕上拖动笔的事件。在 Scribble 
                                中,它负责用笔绘画。&nbsp;<BR><BR>public void penMove(int 
                                x, int y)<BR>使用的最后一个方法 clearDrawingArea(),在用户按下 
                                Clear 按钮时由 penDown 事件处理程序调用。由于它仅在 Scribble 
                                类的内部使用,所以 clearDrawingArea() 
                                是一个私有方法。&nbsp;<BR><BR>private void 
                                clearDrawingArea() 
                              </LI></UL></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
                      <TD width=30><IMG height=21 src="8.files/0.gif" 
                      width=30></TD></TR></TBODY></TABLE></TD>
                <TD width=1 bgColor=#cccccc><IMG height=1 src="8.files/0.gif" 
                  width=1></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE cellSpacing=0 cellPadding=0 width=755 border=0>
              <TBODY>
              <TR>
                <TD width=1 bgColor=#cccccc><IMG height=1 src="8.files/0.gif" 
                  width=1></TD>
                <TD width=158 bgColor=#eeeeee height=81><IMG height=1 
                  src="8.files/0.gif" width=1></TD>
                <TD width=1 bgColor=#cccccc><IMG height=1 src="8.files/0.gif" 
                  width=1></TD>
                <TD vAlign=bottom><IMG height=31 src="8.files/eng_bottom3.gif" 
                  width=594 useMap=#Map border=0></TD>
                <TD width=1 bgColor=#cccccc><IMG height=1 src="8.files/0.gif" 
                  width=1></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD bgColor=#666666 height=20><FONT color=#ffffff 
            align="center"><BR>&nbsp; &copy; 北京映翰通网络技术有限公司 版权所有<BR>&nbsp;</FONT> 
        </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><MAP name=Map><AREA 
  shape=RECT coords=506,5,592,26 
  href="http://www.inhand.com.cn/solution/j2me/j2me_8.htm#top"></MAP></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -