• netbeans的流设计

    2007-12-06

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://peterpannju.blogbus.com/logs/11577654.html

        呼呼,最近入了一只索爱的智能机,M608c,忽然对J2ME开发产生了兴趣。

        于是开始接触netbeans。现在看来,netbeans对手机应用程序的开发远远好于eclipse,至少索爱官网上是推荐使用netbeans的。

        最让我震惊的就是流设计(visual MIDlet)了。它可以让开发者以使用者的角度,来模拟程序运行的真实情况,表示不同屏幕之间的跳转,作出流程图,同时自动生成代码。

        所以很快地做了一个小程序,没什么功能,输入短信号码,短信内容,点击发送,信息就发送出去了。但是这个小程序也包括了完整的出错处理和帮助菜单。netbeans作出的流程图如下:

     简单的短信发送器流程图

     工作流程如下:

        1. 新建项目,Mobile-Mobile应用程序,不要创建Hello MIDlet;
        2. 新建包,比如sms;
        3. 新建Visual MIDlet,取个名字,比如SMSTool。开始流设计;  
        4. 拖进一个Form,给它添加1个OkCommand和BackCommand。进GUI设计,给它添加1个TextField,命名为number。这个form用于输入电话号码;
        5. 新建一个Textbox,命名为content,给它添加1个OkCommand和BackCommand。这个textbox用于输入短信内容;
        6. 拖进一个List,给它添加3个ListElement,分别是:Write, Help和Exit。加入Alert,取名Help,将其与“帮助”连接好。将“退出”与移动设备的退出点连接好。
        7. 拖进一个Form,给它添加1个OkCommand和BackCommand。进GUI设计,给它添加2个TextField,分别是number和content。
        8. 拖进WaitScreen,将其文本写为“正在发送”。给它添加两个Alert,分别作为发送成功和失败的提示。至此,UI全部设计完毕。
        9. 下面加入逻辑代码,在类中添加方法,sendMessage,代码如下:
            private void sendMessage(String phoneNumber, String message) throws IOException
            {
                // create the address
                String address = "sms://"  phoneNumber  ":50000"; 
                // open the message connection
                MessageConnection smsconn = null; 
                try
                {
                    smsconn = (MessageConnection)Connector.open(address); 
                    // create new text message
                    TextMessage txtmessage = (TextMessage)smsconn.newMessage(                                         MessageConnection.TEXT_MESSAGE); 
                    // set address
                    txtmessage.setAddress(address); 
                    // set the message
                    txtmessage.setPayloadText(message); 
                    // send the message
                    smsconn.send(txtmessage); 
                }
                finally
                {
                    // close the connection when finished or an IOException is thrown
                    if (smsconn != null)
                    {
                        smsconn.close(); 
                    }
                }
            } 
      注重用Alt Shift F来修复包导入的问题。
        10. 给WaitScreen添加任务,代码如下:
            sendMessage(get_number().getString(), get_content().getString()); 
        11. 测试,完成。


    收藏到:Del.icio.us




    评论

  • 10. 给WaitScreen添加任务,代码如下:
    sendMessage(get_number().getString(), get_content().getString());

    Er,根据本学期Design patterns里学的Single Responsibility原则……