Java手机软件图形界面API之低级GUI组件

在高级API编程时,你不能控制显示在屏幕上的内容,甚至用编程方式几乎无法控制这些组件。由系统实现体负责选取设备的最佳显示方式。然而,一些如游戏类的应用程序可能需要对屏幕绘制有更多的控制。MIDP javax.microedition.lcdui包也提供了处理这类编程的低级API。

为了在屏幕直接绘制直线,文本和形状,你必须使用Canvas类。该类提供了一个MIDlet可以在其上绘制的空白屏幕。例如,在屏幕上绘制字符串"HelloWorld"。实现这个功能有一个简单的办法:子类化Canvas类(它是继承自Displayable的一个抽象类)并重载paint()方法。详见代码段1。

paint()方法的实现使用了javax.microedition.lcdui.Graphics类的绘图功能。在方法paint()中,绘图颜色置为红色,然后用红色画一个长方形。其中,方法getWidth( )和getHeight( )分别返回Canvas对象的宽度和高度。接下来setColor( )方法把绘图颜色设置为白色;之后,字符串"Hello World!"绘制在屏幕的左上角。

示例1:子类化Canvas

import javax.microedition.lcdui.*;
public class MyCanvas extends Canvas {
 public void paint(Graphics g) {
  g.setColor(255, 0, 0);
  g.fillRect(0, 0, getWidth(), getHeight( ));
  g.setColor(255, 255, 255);
  g.drawString("Hello World!", 0, 0, g.TOP | g.LEFT);
 }
}

现在,为了观看MyCanvas,必须要把实例化后进行显示。既然Canvas是Displayable的一个子类,可以用与其它screen 类使用的同样的setCurrent( )方法来显示它。详见代码段2。

示例2:实例化和显示MyCanvas

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MyMidlet extends MIDlet {
 public MyMidlet( ) {}
 public void startApp( ) {
  Canvas canvas = new MyCanvas( );
  Display display = Display.getDisplay(this);
  display.setCurrent(canvas);
 }
 public void pauseApp( ) {}
 public void destroyApp(boolean unconditional) {}
}

如果你在无线开发包提供的模拟器中运行,可能得到如图1所示的效果。注意在代码段5-1中,颜色被设置为红色与白色,但是既然使用了灰度级屏幕,这里的彩色就被映射到黑色和白色的不同的灰度级上。试着调整显示来观察哪一种设备的色彩显示更好些。

图1.在Canvas上绘制"Hello World!"

时间: 2025-01-19 10:56:53

Java手机软件图形界面API之低级GUI组件的相关文章

在java中使用图形界面后怎么用按钮Button实现RS232串口的链接PC机上

问题描述 在java中使用图形界面后怎么用按钮Button实现RS232串口的链接PC机上 在java中使用图形界面后怎么用按钮Button实现RS232串口的链接PC机上,求大神啊 解决方案 你的按钮中就实现连接串口启动等代码 http://blog.csdn.net/kabini/article/details/1601324 解决方案二: 为button增加ActionListener,在其事件中实现你要的功能. new JButton().addActionListener(new Ac

在windows下使用Xming+Putty显示Linux下软件图形界面

From: http://www.blogjava.net/ivanwan/archive/2012/04/26/376670.html From: http://www.bubuko.com/infodetail-807886.html 安装Xming 和 Putty         看Wiki系统地了解了一下X Window System.X Window System(常被简称为X11或X),是一套基于X display protocol的windowing system,X GUI环境的

java图形界面-button和label不能显示中文

问题描述 button和label不能显示中文 在编写Java application的图形界面时,定义的button和label的中文无法显示出来,是什么原因? 解决方案 cocos2dx 3.4 Label中文显示 解决方案二: 你没有使用this.getcontentPane,把应该加的组件放在这个上面,代码如下: JPanle panel = (JPanel)this.getContentPane; panel.setLayout(); panel.add(这里是你应该加的组件); 解决

12580手机软件订餐经验大分享

您平时用手机除了聊QQ,秀自己围脖上的大白脸.大菜盘~在这个"爱不释手"的手机当道年代还能干点啥?坛子这都是吃喝玩乐的"泰斗"~今儿咱不说哪家饭店好吃,推荐那一两家都是浮云!!关键在于随时.迅速.有效"hold住"到靠谱饭店!这不长草了这么久,咱也雷锋一把,冒泡分享下12580手机软件订餐经验: 关键词:界面内容分类 每一款手机软件安装好之后,自己喜不喜欢,界面外观可是第一关.就像女人的衣服一样,如果不好看,自己穿着也不舒服.手机软件的界面也是一

JAVA图形界面(GUI)之事件处理机制

之前几篇博客中,我们编写了一些示例,但是这些示例并不能与读者进行交互,读者之所以对图形界面感兴趣,就是因为图形界面与读者交互能力强.但是单纯的界面是没有使用价值的,要是图形界面能与读者交流,那么必须了解java的事件处理机制. 首先组件要先注册事件处理器,当读者单击组件.移动鼠标或者敲击键盘都会产生事件(Event).一旦有事件产生,应用程序做出对该事件的响应,这些组件就是事件源(Event Source).接受.解析和处理事件,实现和读者交互的方法称之为事件处理器(Event Handler)

Java图形界面开发之简易记事本_java

在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*

求java图形界面开发

问题描述 哪位大神告诉我怎样开发java图形界面的程序谢谢!!! 解决方案 解决方案二:你可以看一些相关内容,很多的解决方案三:看java的经典图形库awt和swing解决方案四:告诉你个Swing开发的好网站.http://www.java2s.com/CN/Code/Java/2D-Graphics-GUI/Transform.htm再告诉你个用swing做的3D程序,有源码的哦.....笑去吧.....http://www.sweethome3d.com做java开发,多逛开源网站,不管是

用java的swing做图形界面开发

问题描述 我发现网上与这个有关的东西都很少啊,这个是不是很冷门啊?做这个是不是没什么前途?我是在校的大学生,对java比较感兴趣,但是学完简单的语法后都不知道该做什么好,请各位前辈指一下路哈,谢谢. 解决方案 不是.主要是J2SE这方面做得人很少了.现在Java主要都是JavaWEB.做J2SE的都跑Android去了.做J2SE的看不起J2EE的.大都这样呵呵~~~Java Swing主要是效率比较低,所以用得人很少做图形界面的话C++和C比起Java来有着绝对的优势,而且Java Swing

分享下手机软件界面设计浅析_其它相关

随着科技的不断发展,手机的功能俞之强大,基于手机系统的相关软件应运而生,手机设计的人性化已不仅仅局限于手机硬件的外观,手机的软件系统已成为用户直接操作和应用的主体,它应以美观实用.操作便捷为用户所青睐.用户界面设计的规范性显得尤为重要. 一.界面效果的整体性.一致性 手机软件运行于手机操作系统的软件环境,界面的设计应该是基于这个应用平台的整体风格,这样有利于产品外观的整合. 1.界面的色彩及风格与系统界面统一 软件界面的总体色彩应该接近和类似系统界面的总体色调,例如:系统色调以蓝色为主,我们的软