📄 centermenu.java
字号:
import java.util.Vector;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
public class CenterMenu extends Canvas {
private DataSave dataSave;
private Container container;
public static final Command SELECT_COMMAND = new Command("", 1, 0);
private Vector vector;
private int numberInScream = 0;// 在屏幕上显示个菜单项的数目
private int upHeight, lowHeight;
private int changedY = 0;
private int height, width;
private int fontHeight;
private Jianhuaban midlet;
static Displayable Centerdisplayable;
private Display display;
// MAIN_LIST_Y开始显示的y坐标
// moveListIndex移位后的游标
// mainListSelectIndex主移动的游标
// MAX_LINE显示在屏幕上的个数
// lineSpace字体间距
private ChoiceGroup cg;
public int MAIN_LIST_Y,moveListIndex, mainListSelectIndex,MAX_LINE,lineSpace=0;
public Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
Font.SIZE_MEDIUM);
public CenterMenu(Jianhuaban midlet,Displayable displayable,String[] string,Container container,DataSave dataSave) {
this.midlet=midlet;
this.Centerdisplayable=displayable;
this.display = Display.getDisplay(midlet);
width = this.getWidth();
height = this.getHeight();
vector = new Vector();
for (int i = 0; i < string.length; i++) {
vector.addElement(string[i]);
}
MAX_LINE=12;
MAIN_LIST_Y=20;
lineSpace=20;
this.container=container;
this.dataSave=dataSave;
}
public void keyPressed(int keyCode) {
if (getGameAction(keyCode) == Canvas.DOWN) {
changedY++;
if(changedY==vector.size()){
changedY=0;
}
mainListSelectIndex++;
repaint();
if (mainListSelectIndex > vector.size() - 1) {
mainListSelectIndex = vector.size() - 1;
} else {
if (mainListSelectIndex - moveListIndex >= MAX_LINE) {
moveListIndex++;
}
}
}
if (getGameAction(keyCode) == Canvas.UP) {
changedY--;
if(changedY==0){
changedY=vector.size()-1;
}
mainListSelectIndex--;
repaint();
if (mainListSelectIndex < 0) {
mainListSelectIndex = 0;
} else {
if (mainListSelectIndex < moveListIndex) {
moveListIndex--;
}
}
}
if (getGameAction(keyCode) == Canvas.FIRE) {
getChoicedNumber();
}
}
protected void paint(Graphics g) {
g.setFont(font);
g.setColor(0xffffff);
g.fillRect(0, 0, width, height);
drawList(vector, 0, MAIN_LIST_Y, height, width,moveListIndex, mainListSelectIndex,g);
}
public void getChoicedNumber() {
String s="百医网";
if(changedY==0){
MeetNotice mn=new MeetNotice(midlet,Centerdisplayable,container,dataSave); //会议公告
display.setCurrent(mn);
}else if(changedY==1){
MeetRecollect mc=new MeetRecollect(midlet,Centerdisplayable,container,dataSave);//会议回顾
display.setCurrent(mc);
}else if(changedY==2){
RelativalLiterature rl=new RelativalLiterature(midlet,Centerdisplayable,container,dataSave);// 相关文献
// display.setCurrent(rl);
}else if(changedY==3){
Question question=new Question(midlet,Centerdisplayable,container,dataSave);//问卷调查
// display.setCurrent(question);
}else if(changedY==4){
Instead instead=new Instead(midlet,Centerdisplayable,container,dataSave);//更新
// display.setCurrent(instead);
//instead.instead();
//去掉更新类
// updata = new Updata(midlet,Centerdisplayable);
// midlet.updata.initialize("ad");
// midlet.updata.initialize("meetNotice");
// midlet.updata.initialize("meetRecollect");
// midlet.updata.initialize("relativalLiterature");
// midlet. updata.initialize("question");
}
}
/**
*
*
* @param vector
* 列表内容
* @param x
* 列表x坐标
* @param y
* 列表y坐标
* @param w
* 列表显示区域宽
* @param h
* 列表显示区域高
* @param index
* 屏幕偏移
* @param select
* 当前项
* @param move
* 数据偏移位置
*/
public void drawList(Vector vector, int x, int y, int w, int h, int index,
int select,Graphics bg) {
bg.setFont(font);
if (!vector.isEmpty()) {
bg.setClip(x, y, w, h);
String temp;
int len = vector.size();
for (int i = 0; i < len; i++) {
temp = vector.elementAt(i).toString();
// System.out.println("temp="+temp);
int xx=0;
xx=(width - font.stringWidth(temp)) / 2;
if (select == (i - 0)) {
bg.setColor(0x000000);
bg.fillRect(0,y + (i - index - 0) * lineSpace, width,font.getHeight());
bg.setColor(0xffffff);
} else {
bg.setColor(0);
}
bg.drawString(temp, xx,y + (i - index - 0) * lineSpace, 20);
}
bg.setClip(0, 0, height, height);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -