J2ME程序开发全方位基础讲解汇总[4]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

 Thread(this);thread.start();try {//导入3D图片myWorld = (World) Loader.load("/swerve.m3g")[0];viewport_x = 0;viewport_y = 0;viewport_width = getWidth();viewport_height = getHeight();cam = myWorld.getActiveCamera();//设置cam对象float[] params = new float[4];int type = cam.getProjection(params);if (type != Camera.GENERIC) {//calculate window aspect ratiofloat waspect = viewport_width / viewport_height;if (waspect < params[1]) {float height = viewport_width / params[1];viewport_height = (int) height;viewport_y = (getHeight() - viewport_height) / 2;}else {float width = viewport_height * params[1];viewport_width = (int) width;viewport_x = (getWidth() - viewport_width) / 2;}}worldStartTime = System.currentTimeMillis();}catch (Exception e) {}}protected void paint(Graphics g) {//清除背景g.setColor(0x00);g.fillRect(0, 0, getWidth(), getHeight());//和3D对象绑定g3d.bindTarget(g);g3d.setViewport(viewport_x, viewport_y, viewport_width, viewport_height);long startTime = System.currentTimeMillis() - worldStartTime;validity = myWorld.animate((int)startTime);try {g3d.render(myWorld);}finally {g3d.releaseTarget();}}public void run() {try{while(true){//重绘图形repaint(viewport_x, viewport_y, viewport_width, viewport_height);}}catch(Exception e){}}}

十七、在J2ME网络编程中使用CMWAP代理

  在中国移动提供的网络连接中,分为CMNET和CMWAP两种,其中CMNET可以无限制的访问互联网络,资费比较贵。CMWAP类似一个HTTP的代码,只能访问支持HTTP的应用,但是资费便宜,稳定性比较差。

  在实际的J2ME网络编程中,一般需要提供以CMWAP代理的方式连接网络,在J2ME中,连接的代码和直接连接有所不同,代码如下:
HttpConnection http = (HttpConnection)Connector.open(("http://10.0.0.172/"+url);http.setRequestProperty("X-Online-Host",ServerName);
  例如你需要访问的地址为:http://www.test.com/login/loginServlet则上面的代码就为:
HttpConnection http = (HttpConnection)Connector.open(("http://10.0.0.172/" + "login/loginServlet");http.setRequestProperty("X-Online-Host","www.test.com");
  在实际使用过程中,只需要使用实际需要访问的地址的域名或者IP来代替ServerName,例如示例中的“www.test.com”,使用后续的地址类代替代码中的url,例如示例中的“login/loginServlet”,就可以实际的使用CMWAP代理来进行连接了。


十八、J2ME中的时间处理全攻略

  时间处理在程序开发中相当常见,下面对于时间处理做一个简单的说明。

  一、时间的表达方式

  时间在J2ME中有两种表达方式:

  1、以和GMT1970年1月1号午夜12点和现在相差的毫秒数来代表
  这种方式适合比较两个时间之间的差值。
  2、以对象的形式来表达

  二、时间处理的相关类

  时间处理在J2ME中涉及三个类:

  1、System类
long time = System. currentTimeMillis();
  使用该方法可以获得当前时间,时间的表达方式为上面提到的第一种。
  2、Date类
Date date = new Date();
  获得当前时间,使用对象的形式来进行表达。
  3、Calendar类
Calendar calendar = Calendar. getInstance();

  三、时间处理的具体操作

  1、以上三种表达方式的转换:

  a)将System类获得的时间转换为Date对象
Date date = new Date(System. currentTimeMillis());
  b)将Date类型的对象转换为Calendar类型的对象
 Calendar calendar = Calendar. getInstance();Date date = new Date();calendar.setTime(date);

  2、使用Calendar完成一些日期操作:

  Calendar是时间处理中最常用也是功能最强大的类,可以用它来获得某个时间的日期、星期几等信息。
  获得日期:
Calendar calendar = Calendar. getInstance();……int day = calendar.get(Calendar. DATE);
  获得日期、年份、星期的操作和这个类似。
  需要注意的是:Calendar中表示月份的数字和实际相差1,即1月用数字0表示,2月用数字1表示,……12月用数字11表示。


十九、J2ME中随机数字处理全攻略

  在程序中生成随机数字,用处比较,如人工智能领域等等,这里对于在J2ME中生成随机数的操作进行一个简单的整理,希望对大家能有帮助。

  J2ME和J2SE不同,不能使用Math类的random来生成随机数字,只能使用java.util包的Random类来生成随机数字。

  1、创建Random类型的对象:
Random random = new Random();Random random = new Random(10010010);
  以上两种是创建Random对象的方式,第一种使用默认构造方法,和以下的代码作用完全等价:
   Random random = new Random(System. currentTimeMillis());
  相当与使用当前时间作为种子数字来进行创建。
  第二种方式通过自己来指定种子数字来进行创建。
  大家可以根据需要使用以上两种方式的任一种。

  2、生成随机数字:

  创建好了随机对象以后,我们就可以来生成随机数字了:
  生成随机整数:
int k = random.nextInt();
生成随机长整数:
long l = random.nextLong();

  3、生成指定范围的数字:

  例如生成0-10之间的随机数字:
int k = random.nextInt();int j = Math.abs(k % 10);
  首先生成一个随机整数k,然后用k和10取余,最后使用Math类的abs方法取绝对值,获得0-10之间的随机数字。
  获得0-15之间的随机数,类似:
int k = random.nextInt();int j = Math.abs(k % 15);
  获得10-20之间的随机数字:
int k = random.nextInt();int j = Math.abs(k&

本文关键:J2ME程序开发全方位基础讲解汇总
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top