代码:
/*
* Created on 2004-6-20
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package cn.edu.xtu.tilepuzzle.ui;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import cn.edu.xtu.tilepuzzle.GameDB;
import cn.edu.xtu.tilepuzzle.contorller.MainUIController;
import cn.edu.xtu.tilepuzzle.model.ClassPeopleInfo;
import cn.edu.xtu.tilepuzzle.model.RecordStoreOperations;
public class ShowPeopleInfoListUI extends Canvas implements CommandListener {
static final int lowColor = 0x000000FF;
static final int highColor = 0x00FF0000;
static final int highBGColor = 0x00CCCCCC;
public int width;
public int height;
static final Font fontTitle = GameDB.MONOSPACE_BOLD_LARGE_Font;
static final Font font = GameDB.MONOSPACE_PLAIN_MEDIUM_Font;
static final int lineHeight = font.getHeight();
private MainUIController mainUIController;
private Command ok;
private Display display;
private int startLine = 0;
// private int endLine = 0;
private int allPeopleLine = 0;
private int showLines = 16;
private String titleString[] = { "排 名", "名 字 ", "时 间" };
private ClassPeopleInfo classPeopleInfo[];
Displayable displayable;
int xSpace=0;
int lenTitle[];
int titleHeight=0;
// private Image titleImage;
public ShowPeopleInfoListUI(MainUIController mainUIController,Display display,Displayable displayable) {
this.display = display;
this.displayable=displayable;
this.mainUIController = mainUIController;
// this.setFullScreenMode(true);
this.width = getWidth();
this.height = getHeight();
// System.out.println("屏幕的宽,高:"+width+","+height);
startLine = 0;
ok = new Command("返回", Command.OK, 0);
addCommand(ok);
setCommandListener(this);
}
public void init() {
//System.out.println("获取人物信息。。。。");
this.classPeopleInfo=RecordStoreOperations.ReaderRecordStores(GameDB.recordStorePeopleResult);
allPeopleLine=classPeopleInfo.length;
this.sortPeopleInfos();
startLine=0;
lenTitle = new int[3];
for (int ii = 0; ii < 3; ii++) {
lenTitle[ii] = font.stringWidth(titleString[ii]);
}
xSpace = (width - (lenTitle[0] + lenTitle[1] + lenTitle[2])) / 4;
titleHeight=fontTitle.getHeight();
showLines=(getHeight()-titleHeight)/lineHeight;
}
protected void paint(Graphics g) {
// TODO Auto-generated method stub
g.setColor(255, 255, 190);
g.fillRect(0, 0, width, height);
// System.out.println("屏幕的宽,高:"+width+","+height);
g.setFont(fontTitle);
g.setColor(50,50,50);
int len[] = new int[3];
for (int ii = 0; ii < 3; ii++) {
len[ii] = fontTitle.stringWidth(titleString[ii]);
}
g.drawString(titleString[0], xSpace / 6,
lineHeight / 4, Graphics.LEFT | Graphics.TOP);
g.drawString(titleString[1], xSpace / 5 + 2 * xSpace + lenTitle[0] - xSpace / 3,
lineHeight / 4, Graphics.LEFT | Graphics.TOP);
g.drawString(titleString[2], xSpace / 5 + 3 * xSpace + lenTitle[0] + lenTitle[1],
lineHeight / 4, Graphics.LEFT | Graphics.TOP);
String str[];
if(startLine+showLines>allPeopleLine)
showLines=allPeopleLine-startLine;
for (int i = startLine,j=0; j < showLines; i++,j++) {
g.setFont(font);
str = getPeopleInfo(classPeopleInfo[i],i);
len = new int[3];
for (int ii = 0; ii < 3; ii++) {
len[ii] = font.stringWidth(str[ii]);
}
g.drawString(str[0], xSpace / 6 ,
titleHeight+j*lineHeight +lineHeight / 4, Graphics.LEFT | Graphics.TOP);
g.drawString(str[1], xSpace / 5 + 2 * xSpace + lenTitle[0] - xSpace / 3,
titleHeight+j*lineHeight +lineHeight / 4, Graphics.LEFT | Graphics.TOP);
g.drawString(str[2], xSpace / 5 + 3 * xSpace + lenTitle[0] + lenTitle[1],
titleHeight+j*lineHeight +lineHeight / 4, Graphics.LEFT | Graphics.TOP);
//g.drawString(mainMenu[i],(width - DataBase.MONOSPACE_PLAIN_MEDIUM_Font.stringWidth(mainMenu[i])) / 2, startHeight + (i * startHeight * 3 / 2 + startHeight / 4),Graphics.LEFT | Graphics.TOP);
}
}
public String[] getPeopleInfo(ClassPeopleInfo classPeopleInfo, int i) {
String str[] = new String[3];
str[0] = Formatstr0(i);
str[1] = classPeopleInfo.getName();
str[2] = classPeopleInfo.getStrTime();
return str;
}
public String Formatstr0(int i) {
if ((1+i) >0 && (1+i) < 10)
return "第" + " " + (1+i) + " " + "名";
else if ((1+i) < 100 && (1+i) >= 10)
return "第" + (1+i) + " " + "名";
else
return "第" + (1+i) + "名";
}
public void sortPeopleInfos() {
int len = classPeopleInfo.length, i, j,flag;
//System.out.println("共有人数:"+len);
ClassPeopleInfo temp;
for (i = 0; i < len - 1; i++) {
temp=classPeopleInfo[i];
flag=i;
for (j = i + 1; j < len; j++) {
if (temp.time > classPeopleInfo[j].time) {
//System.out.println(temp.time +","+peopleInfo[j].time);
temp = classPeopleInfo[j];
flag=j;
}
}
if(flag!=i){
classPeopleInfo[flag]=classPeopleInfo[i];
classPeopleInfo[i] = temp;
}
}
//return peopleInfo;
}
protected void keyPressed(int code) {
if (getGameAction(code) == Canvas.UP) {
if (startLine - 1 >= 0)
startLine--;
} else if (getGameAction(code) == Canvas.DOWN) {
if (startLine + showLines < allPeopleLine)
startLine++;
//else
// startLine = 0;
} else
;
//System.out.println("起始行:"+(startLine+1)+" 显示行:"+showLines+" 总人数:"+allPeopleLine);
// System.out.println("menuIdx = " + (menuIdx)+":"+mainMenu[menuIdx]);
repaint();
}
public void commandAction(Command c, Displayable db) {
// TODO Auto-generated method stub
if (c == ok) {
//System.out.println("返回=====");
display.setCurrent(mainUIController.mainMenuUI);
}
}
}
运行显示如图:
分享到:
相关推荐
J2ME 拼图游戏源码 J2ME 拼图游戏源码 J2ME 拼图游戏源码
本游戏实现了拼图游戏的基本功能,另外有计时,计步,暂停,重新开始,RMS持久存储,支持图像的动态切分。。。。。
j2me Picpuzzle 拼图游戏 可选择自己喜欢的背景图片 操作简单
实现了J2me拼图小游戏,可以选择图片,难度,分别有3x3,4x4,5x5,游戏中进行了计时,计步数。根据时间,步数进行评分,给出最后得分并根据不同等级显示不同的图片
j2me拼图游戏+游戏动画.。
J2ME游戏开发 J2ME游戏开发 J2ME游戏开发
J2ME开发 J2ME开发 J2ME开发 J2ME开发
一个简单的j2me拼图游戏,如果有兴趣可以下载试一下。。。
j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解j2ME游戏开发详解
j2me拼图游戏,利用面向对象实现。是中国移动mm培训讲师讲的一个项目
java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源代码).zip java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源代码).zip java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源...
j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发
《J2ME手机游戏开发技术详解》《J2ME手机游戏开发技术详解》《J2ME手机游戏开发技术详解》《J2ME手机游戏开发技术详解》《J2ME手机游戏开发技术详解》《J2ME手机游戏开发技术详解》《J2ME手机游戏开发技术详解》...
j2me手机游戏开发j2me手机游戏开发技术详解
很简单的j2me拼图游戏用canvas做的
关于J2ME手机游戏开发的一个毕业论文,有需要的可以看看
Java写的j2me拼图游戏源码,代码中的注释非常多,学习来说比较有用,两种方法编辑本拼图游戏源代码: 用eclipse打开:在eclipse左侧包资源管理器中右键选择导入,然后选择现有项目到工作空间中,点下一步,在选择...
基于j2me的手机游戏开发
J2ME手机游戏开发详解--快速入门难点剖析商业案例光盘源码。本书是一本介绍J2ME无线开发的实训教程,面向具有基本J2ME无线开发基础的开发人员。本书通过7个典型的例子,从不同的方面分别介绍了J2ME游戏开发的实用...
java基于J2ME的游戏开发——贪吃蛇论文.docx