Java ME应用开发实训
实训报告
姓名 学号 系部 专业 指导教师 完成时间 2012 年 6 月 3 0日
Java ME综合实训报告
任务1:重构项目名称为GoToHell;将资源文件置于cn.njcit.res包中;将源程序文件置于cn.njcit.src包中。 实现说明:
1、打开NETBEANS软件,接着文件—>打开项目—>找到原文件—>确定—>
点击项目名称—>右击重命名,修改为GoToHell;
2、在源包上右击新建—>java包—>输入新的包名cn.njcit.res,复制缺省包内的
图片,后将空文件的缺省包删除;
3、在源包上右击新建—>java包—>输入新的包名cn.njcit.src,复制源程序至
cn.njcit.src即可。
任务2:去除现有提示闪屏,添加一个有意义的闪屏。 实现说明:
1. 去除现有提示闪屏:将gameCanv.java中得下面代码删除。
private String GAME_WELCOME=\欢迎使用\ private String GAME_AUTHOR=\ private String GAME_NAME=\的游戏\
private String GAME_INSTRUCT=\软键打开菜单\删除gameGanv构造方法中代码:
g.setColor(0,0,0);
g.drawString(GAME_WELCOME,88,70,Graphics.HCENTER|Graphics.TOP);
g.drawString(GAME_AUTHOR+GAME_NAME,88,100,Graphics.HCENTER|Graphics.TOP);
·1·
Java ME综合实训报告
g.drawString(GAME_INSTRUCT,88,130,Graphics.HCENTER|Graphics.TOP);
2. 添加有意义的闪屏核心代码如下:
private SplashScreen splashScreen;
public SplashScreen getSplashScreen() { if (splashScreen == null) { // write pre-init user code here splashScreen = new SplashScreen(dp); splashScreen.setTitle(\ splashScreen.setCommandListener(this); splashScreen.setFullScreenMode(true); splashScreen.setImage(getWelcomeImage()); splashScreen.setTimeout(1000);
splashScreen.removeCommand(SplashScreen.DISMISS_COMMAND); }
return splashScreen; }
private Image welcomeImage; public Image getWelcomeImage() { if (welcomeImage == null) { // write pre-init user code here try {
welcomeImage=Image.createImage(\
}
catch (java.io.IOException e) {
e.printStackTrace(); } }
return welcomeImage; }
运行结果如下图所示:
·2·
Java ME综合实训报告
任务3:使用Canvas添加一个游戏菜单,含新游戏、继续游戏、设置、排名、帮助。
实现说明:添加一个类MenuCanvas 代码如下: public class MenuCanvas extends Canvas { //selected变量标记了焦点位置 private int selected = 0;
public static final int[] OPTIONS = {0, 1, 2, 3, 4, 5};
public static final String[] LABELS = {\新游戏\继续游戏\设置\排行榜\帮助\退出\ private Image btnNorImage; private Image btnSelImage; private Font font; private int btnWidth; private int btnHeight; private int width; private int height;
·3·
Java ME综合实训报告
private MainRunner mainRunner;
public MenuCanvas(MainRunner mainRunner) { this.mainRunner = mainRunner; selected = OPTIONS[0]; //计算菜单选项的长度和高度值
font=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN, 16); try {
btnNorImage = Image.createImage(\ btnSelImage = Image.createImage(\ btnWidth = btnNorImage.getWidth(); btnHeight = btnNorImage.getHeight(); width = getWidth(); height = getHeight(); } catch (IOException ex) { ex.printStackTrace(); } }
public void paint(Graphics g) { //清除屏幕
int color = g.getColor(); g.setColor(162,205, 90);
g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(color); g.setFont(font);
for (int i = 0; i < LABELS.length; i++) { if (i == selected) {
g.setColor(255, 255, 255);
g.drawImage(btnSelImage, (width - btnWidth) / 2, (i + 1) * btnHeight, color); } else {
g.setColor(0, 0, 0);
g.drawImage(btnNorImage, (width - btnWidth) / 2, (i + 1) *
·4·