package com;
import java.io.IOException;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.Sprite;
/**
* @author 徐彬
* @see 画布(Canvas) 画笔(Graphics)--> 画图形
*/
public class CanvasTest extends MIDlet{ //这是J2ME手机程序主入口类
Display dis;
private acanvas mc=new acanvas(this);//创建内部类acanvas的对象,并将自身对象传入。
public CanvasTest() {
//构造函数
}
/**
* @author Administrator
* 内部类
* 手机应用程序界面设计:Canvas类,相当于画布
*/
class acanvas extends Canvas implements CommandListener
//在这里需要实现CommandListener 事件监听接口
{
//menu弹出菜单 将help和exit按钮包含进菜单中
private Command resumeCmd= new Command("", Command.SCREEN, 5);
private Command help = new Command("帮助",Command.SCREEN,5);
private Command back = new Command("回退",Command.SCREEN,2);
private Command exit = new Command("退出",Command.SCREEN,5);
private TextBox helpText= new TextBox("标题","帮助内容",200,0);
public acanvas(CanvasTest canvasTest){
repaint();//加载页面组件
addCommand(resumeCmd);
addCommand(help);
addCommand(exit);
helpText.addCommand(back);//将back回退按钮放入帮助页面(第2个页面)中
setCommandListener(this);//有效化按键事件
helpText.setCommandListener(this);
}
protected void paint(Graphics g) {
try {
//画图片
g.drawImage(Image.createImage("/image/bj.jpg"), 160, 0,Graphics.TOP|Graphics.HCENTER);
//高级画图片~Sprite旋转图片
Image img=Image.createImage("/image/dns.JPG");
g.drawRegion(img, 0, 0, img.getWidth(), img.getHeight(), Sprite.TRANS_MIRROR_ROT90, 169, 200, Graphics.TOP|Graphics.HCENTER);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.setColor(200,33,134); //为下边的图形设置颜色
g.setStrokeStyle(Graphics.DOTTED); //设置为虚线
g.drawLine(19, 53, 45, 35); //划线
g.setStrokeStyle(Graphics.SOLID); //设置为实线
g.drawRect(59, 45, 45, 35); //方角矩形
g.drawRoundRect(120, 45, 45,35,10,10);//圆角矩形
g.setColor(240,33,234); //为下边的图形设置颜色
g.fillRoundRect(120, 45, 45,35,10,10);//填充圆角矩形
g.drawArc(19, 110, 20, 30, 0, 270); //画弧线
g.setColor(54, 34, 100); //为下边的图形设置颜色
g.fillArc(19, 110, 20, 30, 0, 270); //填充圆
g.fillTriangle(50, 110, 40, 150, 90, 150);//填充三角
g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE)); //设置字体
g.drawString("叼啊",110,110, Graphics.TOP|Graphics.LEFT); //划文本
g.drawString("fuck",this.getWidth()/2,this.getHeight()/2, Graphics.TOP|Graphics.HCENTER);
}
void goHelp(){
dis.setCurrent(helpText);//跳转到helpTest界面(第2个界面 )
}
void goBack(){
dis.setCurrent(mc);//跳转到初始界面
}
public void commandAction(Command command, Displayable displayable) {
if(command == help){
//如果按键事件为help
goHelp();
}else if(command == back){
//如果按键事件为back
goBack();
}else if(command == exit){
//如果按键事件为exit
try {
destroyApp(false);//必要的两个退出方法
notifyDestroyed();
} catch (MIDletStateChangeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
protected void startApp() throws MIDletStateChangeException {
dis=Display.getDisplay(this);
mc.setTitle("mycanvas");
dis.setCurrent(mc);//初始化界面,初始显示的是mc界面
}
protected void pauseApp() {
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
}
分享到:
相关推荐
J2ME canvas多级菜单的实现 此代码仅供学习交流,您可以使用并传播本源代码,但请保留作者信息。切勿商用,若有需要,请先与本人联系。
在J2me的Canvas类中调用中文输入法
J2ME手机应用项目开发实践.iso J2ME手机应用项目开发实践.iso
使用J2ME实现的手机图片菜单,供J2ME初学者参考学习使用。 压缩包包括: 1.源代码 2.图片资源【网络下载】 3.编译好的JAD,JAR文件【位于deployed目录】 代码为本人原创,希望朋友多多批评指正。 ...
cavans自画的九宫图 及一个自画菜单例子
J2ME手机应用项目开发实践,关于J2ME的一些手机应用项目的开发源码。
J2ME手机应用项目开发实践 源代码,经过本人亲自验证部分代码可用,请注意仅部分可用,部分有问题。
示例应用程序使用 Java 2 Platform, Micro Edition (J2ME) record management system (J2ME RMS) 存储订单信息,用一个 MIDlet 执行必要的创建及访问数据库应用程序的逻辑。介绍如何使用 J2ME RMS、打造 MIDlet、并...
J2ME的文件 讲述的是Canvas的利用情况
1,应用程序 2,游戏程序和源码:波斯王子,壮志凌云,仙剑奇侠传,圣枪等月光战机游戏源码 是学习的好东西
有关j2me的详细课件。里面含低级和高级界面的讲解还有代码。
j2me中用canvas实现的目录树代码
J2ME应用程序性能优化J2ME应用程序性能优化
j2me的一个示例项目 可直接导入eclipce
j2me无线应用学习源码.rar j2me无线应用学习源码.rar
手机通过socket连接读取公网邮件服务器上邮件内容,并在手机上显示。由于只是示例程序,所以没有做中文处理,仅供大家学习之用。
j2me新手学习全套示例源代码 j2me新手学习全套示例源代码
J2ME手机游戏设计示例代码 J2ME手机游戏设计示例代码
Eclipse下的J2ME入门示例,初学都可以下来看看