科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道新手必读 详细介绍J2ME的基础知识(六)

新手必读 详细介绍J2ME的基础知识(六)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

二十一、在J2ME手机程序开发中使用颜色   在J2ME手机开发过程中,需要经常用到颜色来进行绘制,增强程序的表现效果,下面就介绍一下如何使用颜色。   由于J2ME技术比较简单,所以没有实现专门的颜色类,而只是使用RGB的概念来代表颜色。

作者:中国IT实验室 来源:中国IT实验室 2007年9月18日

关键字: 基础 J2ME 编程 java

  • 评论
  • 分享微博
  • 分享邮件

二十一、在J2ME手机程序开发中使用颜色
  在J2ME手机开发过程中,需要经常用到颜色来进行绘制,增强程序的表现效果,下面就介绍一下如何使用颜色。
  由于J2ME技术比较简单,所以没有实现专门的颜色类,而只是使用RGB的概念来代表颜色。这里简单介绍一下RGB的概念,颜色是由红(Red)、绿(Green)、蓝(Blue)三原色组成的,所以可以使用这三个颜色的组合来代表一种具体的颜色,其中R、G、B的每个数值都位于0-255之间。在表达颜色的时候,即可以使用三个数字来表达,也可以使用一个格式如0X00RRGGBB这样格式的十六进制来表达,下面是常见颜色的表达形式:
  红色:(255,0,0)或0x00FF0000
  绿色:(0,255,0)或0x0000FF00
  蓝色:(255,255,255)或0x00FFFFFF
  其他颜色也可以通过上面的方式组合出来。
  知道了颜色的表达方式以后,下面来介绍一下如何在J2ME程序中使用颜色,涉及的方法均在Graphics类中,有以下几个:
  1.getColor():
  获得当前使用的颜色,返回值是0x00RRGGBB格式的数字。例如:
          int color = g.getColor();
  其中g为Graphics类型的对象。
  2.setColor(int RGB):
  设置使用的颜色。例如:
          g.setColor(0x00ff0000);
  3.setColor(int red, int green, int blue)
  和上面的方法作用一样,例如:
          g.setColor(255,0,0);
  在设置了Graphics使用的颜色以后,再进行绘制的时候,就可以绘制指定的颜色了。

二十二、在J2ME联网应用中获得客户端的手机号码
  在J2ME程序开发过程中,为了一定的需要,经常需要来获得用户的手机号码,但是这个功能却在标准的J2ME类库中没有提供。
  在使用中国移动的CMWAP方式连接网络时,中国移动会将用户的手机号码放在一个名称为x-up-calling-line-id的头信息中,可以通过读取该头信息,获得用户的手机号码,具体代码如下:
          String usermphone = http.getHeader("x-up-calling-line-id");
  其中http是HttpConnction类型的对象。

二十三、使用J2ME发送手机短信息
  在程序中,发送短信息的方式一般有三种:
  1、 使用程序在网络上发送短信息,例如各大网站的短信业务。这种方式是通过程序将信息发送给运营商的网关服务器,然后通过运营商的网络发送给手机。
  2、 在计算机中,通过数据线连接到手机,然后通过手机来发送短信息。这种方式是通过使用AT指令来实现。爱立信手机的AT指令你可以在以下地址找到:http://mobilityworld.ericsson.com.cn/development/download_hit.asp
  3、 通过在手机中运行的程序来发送短信息。这个正是本文实现的方式。
  在J2ME中,如果想发送短信息,需要使用WMA包,MIDP2.0中已经包含,MIDP1.0中可以通过厂商提供的扩展API实现,和WMA的类库基本一样。
       下面是使用WMA向指定手机号码发送短信息的一个方法,很简单。当然WMA也提供了其他的方式来发送更多的内容。

// SMSUtil.java
package my.util;
import javax.wireless.messaging.*;
import javax.microedition.io.*;
/**
* 发送文本短信息的方法
*/
public class SMSUtil
{
      /**
      * 给指定号码发送短信息
      * @param content 短信息内容
      * @param phoneNumber 手机号码
      * @return 发送成功返回true,否则返回false
      */
      public static boolean send(String content,String phoneNumber)
      {
            //返回值
            boolean result = true;
            try
            {
                   //地址
                   String address = "sms://+" + phoneNumber;
                   //建立连接
                   MessageConnection conn = (MessageConnection)Connector.open(address);
                   //设置短信息类型为文本,短信息有文本和二进制两种类型
                   TextMessage msg = (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
                   //设置信息内容
                   msg.setPayloadText(content);
                   //发送
                   conn.send(msg);
            }
            catch(Exception e)
            {
                   result = false;
                   //未处理
            }
            return result;
      }

二十四、使用简单的J2ME程序测试MIDlet的生命周期
  在MIDlet程序学习中,生命周期是一个比较抽象的概念。其实生命周期就是一个简单的规定,规定了MIDlet中的每个方法,什么时候被系统调用。下面是一个示例代码,在每个方法的内部都输出一条语句,可以根据程序的输出结果来验证各方法被调用的顺序,具体代码如下:

//文件名:LifeCircleMIDlet.java
import javax.microedition.midlet.*;
/**
* 测试MIDlet的生命周期
*/
public class LifeCircleMIDlet extends MIDlet
{
      /**
      * 默认构造方法
      */
      public LifeCircleMIDlet()
      {
            System.out.println("默认构造方法");
      }
      /**
      * 启动方法
      */
      public void startApp()
      {
            System.out.println("startApp方法");
      }
      /**
      * 暂停方法
      */
      public void pauseApp()
      {
            System.out.println("pauseApp方法");
      }
      /**
      * 销毁方法
      * @param b
      */
      public void destroyApp(boolean b)
      {
            System.out.println("destroyApp方法");
      }
}
 

  在J2WTK中运行该程序时,可以使用浏览器中的“MIDlet”菜单中的暂停和恢复菜单,模拟暂停事件。

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章