J2ME的一些模版
来源:互联网 发布:少儿英语网络课程 编辑:程序博客网 时间:2024/05/20 07:18
音乐播放模版:
/** * 类说明:音乐的控制 * ware audio files audio/x-wav * au audio/basic * mp3 audio/mpeg * midi audio/midi * tone audio/x-tone-sep * mpeg video/mpeg * @author 作者: User * @version 创建时间:2011-3-22 下午10:02:59 */import java.io.InputStream;import javax.microedition.media.Manager;import javax.microedition.media.MediaException;import javax.microedition.media.Player;import javax.microedition.media.control.VolumeControl;public class Music { private static Music instance; private Player player;// 创建一个音乐播放器 private VolumeControl volumeControl = null;// 声音控制 private int volume = 50;// 音量的初始值 private static final int MAX = 100;// 音量最大值 private static final int MIN = 0;// 音量最小值 private boolean isplay = false;//是否真正播放 private Music() { } // 采用单例模式 返回本类对象 static Music getInstance() { if (instance == null) { instance = new Music(); } return instance; } // 播放音乐 public void playMusic() { player = createPlayer("/city.mid", "audio/midi");// 创建音乐播放器 volumeControl = (VolumeControl) player.getControl("VolumeControl");// 得到音乐控制器 isplay = true; startPlayer(player);// 开始播放音乐 } // 停止音乐播放 public void stopMusic() { try { if (player != null) player.stop(); player = null; isplay = false; } catch (Exception e) { e.printStackTrace(); } } // 加大音量 public void addVolume() { if (volumeControl != null) { volume += 10; if (volume > MAX) volume = MAX; volumeControl.setLevel(volume); } } public boolean isPlay() { return isplay; } // 减小音量 public void subVolume() { if (volumeControl != null) { volume -= 10; if (volume < MIN) volume = MIN; volumeControl.setLevel(volume); } } // 设置音量 public void setVolume(int volue) { if (volumeControl != null) { volumeControl.setLevel(volue); } } // 开始播放 private void startPlayer(Player p) { if (p != null) { try { p.stop(); p.setLoopCount(-1); p.start(); } catch (MediaException me) { me.printStackTrace(); } } } // 创建音乐播放器 private Player createPlayer(String filename, String format) { Player p = null; try { InputStream is = getClass().getResourceAsStream(filename);// 得到音乐文件输入流 p = Manager.createPlayer(is, format); p.prefetch(); } catch (Exception ioe) { ioe.printStackTrace(); } return p; }}
java字符串解析 将字符串解析成字符数组
//字符串解析 private String[] stringAnalytical(String str, String divisionChar) { String string[]; int i = 0; StringTokenizer tokenizer = new StringTokenizer(str, divisionChar); string = new String[tokenizer.countTokens()];// 动态的决定数组的长度 while (tokenizer.hasMoreTokens()) { string[i] = new String(); string[i] = tokenizer.nextToken(); i++; } return string;// 返回字符串数组 }
j2me中字符串的解析,将字符串根据特定的字符解析成字符数组:
// 字符串解析,将字符串转根据分割符换成字符串数组 private String[] stringAnalytical(String string, char c) { int i = 0; int count = 0; if (string.indexOf(c) == -1) return new String[] { string };// 如果不含分割符则返回字符本身 char[] cs = string.toCharArray(); int length = cs.length; for (i = 1; i < length - 1; i++) {// 过滤掉第一个和最后一个是分隔符的情况 if (cs[i] == c) { count++;// 得到分隔符的个数 } } String[] strArray = new String[count + 1]; int k = 0, j = 0; String str = string; if ((k = str.indexOf(c)) == 0)// 去掉第一个字符是分隔符的情况 str = str.substring(k + 1); if (str.indexOf(c) == -1)// 检测是否含分隔符,如果不含则返回字符串 return new String[] { str }; while ((k = str.indexOf(c)) != -1) {// 字符串含分割符的时候 strArray[j++] = str.substring(0, k); str = str.substring(k + 1); if ((k = str.indexOf(c)) == -1 && str.length() > 0) strArray[j++] = str.substring(0); } return strArray; }
进度条实例模板
import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.Gauge;public class GaugeUI extends Form implements CommandListener { private static final int MAX = 8; private static final int LEVELS = 8; int current = 0; Gauge gauge; Command stopCommand; boolean stop; boolean stopped; /** Creates a new instance of GaugeObserverUI */ public GaugeUI() { super(""); // 创建一个进度条 gauge = new Gauge("", false, MAX, 0); stopCommand = new Command("停止", Command.STOP, 10); addCommand(stopCommand); append(gauge); setCommandListener(this); } // 初时化进度条 public void init(String note, boolean stop) { gauge.setValue(0); setNote(note); setStop(stop); stopped = false; } // 进度条标题 public void setNote(String note) { setTitle(note); } // 是否停止 public boolean isStop() { return stop; } // 设置进度条停止 public void setStop(boolean stop) { this.stop = stop; } // 是否已停止 public boolean isStopped() { return stopped; } // 更新进度条 public void updateGauge() { current = (current + 1) % LEVELS; gauge.setValue(current * MAX / LEVELS); } // 处理监听 public void commandAction(Command c, Displayable d) { if (c == stopCommand) { stopped = true; stop(); } } // 停止时事件处理 public void stop() { }}
rms模版
import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;import javax.microedition.rms.RecordComparator;import javax.microedition.rms.RecordEnumeration;import javax.microedition.rms.RecordFilter;import javax.microedition.rms.RecordStore;public class RmsPricatis extends MIDlet { public RmsPricatis() { // TODO Auto-generated constructor stub } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } protected void startApp() throws MIDletStateChangeException { try { RecordStore rs = RecordStore.openRecordStore("rj", true); /* rs.addRecord("张三".getBytes(), 0, 4); rs.addRecord("李四".getBytes(), 0, 4); rs.addRecord("王五".getBytes(), 0, 4); rs.addRecord("王强".getBytes(), 0, 4); rs.addRecord("钱王六".getBytes(), 0, 6);*/ RecordEnumeration re = rs.enumerateRecords(new Filter(), new Compare(), false); while (re.hasNextElement()) { System.out.println(new String(rs.getRecord(re.nextRecordId()))); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }//过滤器 class Filter implements RecordFilter { public boolean matches(byte[] b) { String name = new String(b); if (name.indexOf("王") >= 0) { return true; } return false; } }// 比较器 class Compare implements RecordComparator{ public int compare(byte[] b1, byte[] b2) { String s1 = new String(b1); String s2 = new String(b2); if(s1.length()>s2.length()) return RecordComparator.FOLLOWS; else if(s1.length()==s2.length()) return RecordComparator.EQUIVALENT; else return RecordComparator.PRECEDES; } }}
j2me中将对象转换成字节数组的方法
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;public class PhoneCard { private int password;// 电话密码 private long cardNumber;// 电话卡卡号 private double balance;// 电话卡余额 private String conncetNumber;// 电话卡接入号码 private boolean connected;// 电话是否接通 //将对象转换成字节数组 public byte[] PhoneCard2Byte() throws IOException{ byte[] phonecard;// 用于存放转换后的对象 ByteArrayOutputStream baos = new ByteArrayOutputStream();// 字节输出流 DataOutputStream dos = new DataOutputStream(baos);// 数据输出流用于包装字节输出流 dos.writeInt(password); dos.writeLong(cardNumber); dos.writeDouble(balance); dos.writeUTF(conncetNumber); dos.writeBoolean(connected); phonecard = baos.toByteArray();// 将写入的数据转换成字节数组 dos.close(); baos.close(); return phonecard; } //将字节数组装换成PhoneCard对象 public static PhoneCard byte2PhonCard(byte[] phonecard)throws IOException{ PhoneCard pc = new PhoneCard(); ByteArrayInputStream bais = new ByteArrayInputStream(phonecard);// 字节输入流 DataInputStream dis = new DataInputStream(bais);// 数据输入流用于包装字节输入流 // 从流中读取数据,顺序要和写入时一至 pc.setPassword(dis.readInt()); pc.setCardNumber(dis.readLong()); pc.setBalance(dis.readDouble()); pc.setConncetNumber(dis.readUTF()); pc.setConnected(dis.readBoolean()); dis.close(); bais.close(); return pc;// 返回PhoneCard对象 } // 返回对象的字符串类型 public String toString(){ return "电话密码 : " + password + " 电话卡号 :" + cardNumber + " 电话余额 :" + balance + " 接入号码 :" + conncetNumber + " 接通否 :" + connected; } public int getPassword() { return password; } public void setPassword(int password) { this.password = password; } public long getCardNumber() { return cardNumber; } public void setCardNumber(long cardNumber) { this.cardNumber = cardNumber; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } public String getConncetNumber() { return conncetNumber; } public void setConncetNumber(String conncetNumber) { this.conncetNumber = conncetNumber; } public boolean isConnected() { return connected; } public void setConnected(boolean connected) { this.connected = connected; } }
j2me联网测试
import java.io.DataInputStream;import javax.microedition.io.Connector;import javax.microedition.io.HttpConnection;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Form;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class Test7_1Http extends MIDlet {private Form form = null;private Display display = null; public Test7_1Http() { form = new Form("连网测试"); display = Display.getDisplay(this); } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { try { HttpConnection connection = (HttpConnection)Connector.open("http://localhost:8080/pdsu.html"); System.out.println(connection.getResponseCode());//得到连接状态 System.out.println(connection.getResponseMessage());//得到连接响应的消息 System.out.println(connection.getHost());//得到主机地址 System.out.println(connection.getPort());//得到连接的断口号 System.out.println(connection.getProtocol());//得到连接的协议 System.out.println(connection.getURL()); System.out.println(connection.getRequestMethod());//得到连接方式 默认get DataInputStream dis = connection.openDataInputStream(); byte message[]; int length = (int)connection.getLength(); message = new byte[length]; dis.readFully(message); form.append(new String(message)); display.setCurrent(form); } catch (Exception e) { e.printStackTrace(); } }}
例子
j2me Socket例子
客户端:
import java.io.DataOutputStream;import java.io.IOException;import javax.microedition.io.Connector;import javax.microedition.io.SocketConnection;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.TextField;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class Test7_2Client extends MIDlet implements CommandListener { private Form form = null; private Display display = null; private TextField field = null; private Command send = null; private SocketConnection sc = null; public Test7_2Client() { form = new Form("客户端"); display = Display.getDisplay(this); field = new TextField("文本信息", "", 100, TextField.ANY); send = new Command("发送", Command.OK, 1); form.setCommandListener(this); form.addCommand(send); form.append(field); } protected void startApp() throws MIDletStateChangeException { display.setCurrent(form); } public void commandAction(Command c, Displayable d) { if (c == send) { new SendMessage().start(); } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } class SendMessage extends Thread { private DataOutputStream dos = null; public void run() { try { sc = (SocketConnection) Connector .open("socket://localhost:50000"); dos = sc.openDataOutputStream(); dos.writeUTF(field.getString()); } catch (Exception e) { e.printStackTrace(); } finally { try { if (dos != null) dos.close(); if (sc != null) sc.close(); } catch (IOException e) { e.printStackTrace(); } } } }}
服务器端:
import java.io.DataInputStream;import java.io.IOException;import javax.microedition.io.Connector;import javax.microedition.io.ServerSocketConnection;import javax.microedition.io.SocketConnection;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.TextField;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class Test7_2Server extends MIDlet implements CommandListener { private Form form = null; private Display display = null; private TextField field = null; private Command accept = null; private ServerSocketConnection ssc = null; private SocketConnection sc = null; private String message = null; public Test7_2Server() { form = new Form("服务端"); display = Display.getDisplay(this); field = new TextField("文本信息", "", 100, TextField.ANY); accept = new Command("接受", Command.OK, 1); form.setCommandListener(this); form.addCommand(accept); form.append(field); new AcceptMessage().start(); } public void commandAction(Command c, Displayable d) { if (c == accept) { field.setString(message); } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { display.setCurrent(form); } class AcceptMessage extends Thread { private DataInputStream dis = null; public void run() { while (true) { try { ssc = (ServerSocketConnection) Connector .open("socket://:50000"); sc = (SocketConnection) ssc.acceptAndOpen(); dis = sc.openDataInputStream(); message = dis.readUTF(); System.out.println("Server : " + message); } catch (Exception e) { e.printStackTrace(); } finally { try { if (dis != null) dis.close(); if (sc != null) sc.close(); if (ssc != null) ssc.close(); } catch (IOException e) { e.printStackTrace(); } } } } }}
j2me多线程应用实例
import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.StringItem;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class twoStrings extends MIDlet { Display display; Form form; public String promote = ""; StringItem s1 = new StringItem("string1", "" + promote); StringItem s2 = new StringItem("string1", "" + promote); public twoStrings() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); form = new Form(""); form.append(s1); form.append(s2); display.setCurrent(form); Thread1 th1 = new Thread1(); th1.start(); Thread2 th2 = new Thread2(); new Thread(th2).start(); } class Thread1 extends Thread { int i = 1; public void run() { while (true) { promote = Integer.toString(i); i++; s1.setText(promote); try { Thread.sleep(1000); } catch (Exception e) { } } } } class Thread2 implements Runnable { int i = 1; public void run() { while (true) { promote = Integer.toString(i); i++; s2.setText(promote); try { Thread.sleep(2000); } catch (Exception e) { } } } }}
用Canvas画的菜单:
import javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class MainMIDlet extends MIDlet {public MainMIDlet() {}protected void destroyApp(boolean unconditional)throws MIDletStateChangeException {}protected void pauseApp() {}protected void startApp() throws MIDletStateChangeException { Display.getDisplay(this).setCurrent(new MenuCanvas());}}package test;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;public class MenuCanvas extends Canvas{public Rect[] rect = new Rect[4];//菜单选项RECT;public Rect text_Rect = null;//文本框RECT;public Rect choce_Rect = null;//按钮RECT;public Rect big_Rect = null;//菜单选项外的RECT;public boolean isClicked = false;//是否点击"选择"public int clicked_Num = -1;//选择了哪项// public Graphics bg = null;// public Image buff = null;public final String[] menu_str = new String[]{"选 择", "比翼双飞", "龙飞凤舞", "双龙戏珠", "好彩当头"};public MenuCanvas(){intiRect();}// public void buffer()// {// buff = Image.createImage(big_Rect.w, big_Rect.h);// bg = buff.getGraphics();// }protected void paint(Graphics g) {// TODO Auto-generated method stub g.setColor(255, 255, 255); g.fillRect(0, 0, this.getWidth(), this.getHeight()); drawRect(g);}public void drawRect(Graphics g){text_Rect.drawString(g);choce_Rect.drawString(g);big_Rect.drawString(g);for(int i = 0; i < rect.length; i++){rect[i].drawString(g);}}public void intiRect(){text_Rect = new Rect(40, 40, 80, 20, null, true);choce_Rect = new Rect(130, 40, 40, 20, menu_str[0], false);big_Rect = new Rect(40, 60, 80, 80, null, false);for(int i = 0; i < rect.length; i++){rect[i] = new Rect(40, (60 + i * 20), 80, 20, null, false);}}protected void keyPressed(int keyCode) {super.keyPressed(keyCode);}protected void pointerPressed(int x, int y) {super.pointerPressed(x, y);if(choce_Rect.isClicked(x, y)){isClicked = !isClicked;if(isClicked){choce_Rect.isRect = true;big_Rect.isRect = true;for(int i = 0; i < rect.length; i++){rect[i].menu_str = menu_str[i + 1];rect[i].calculateStringWH();}}else{choce_Rect.isRect = false;big_Rect.isRect = false;text_Rect.menu_str = null;for(int i = 0; i < rect.length; i++){rect[i].menu_str = null;rect[i].isRect = false;}}}else if(big_Rect.isClicked(x, y)){for(int i = 0; i < rect.length; i++){if(rect[i].isClicked(x, y)){clicked_Num = i;rect[i].isRect = true;text_Rect.menu_str = menu_str[i + 1];text_Rect.calculateStringWH();//可以在这里写要跳转的页面方法}else{rect[i].isRect = false;}}}else{choce_Rect.isRect = false;isClicked = false;big_Rect.isRect = false;text_Rect.menu_str = null;for(int i = 0; i < rect.length; i++){rect[i].menu_str = null;rect[i].isRect = false;}}repaint();}}package test;import javax.microedition.lcdui.Font;import javax.microedition.lcdui.Graphics;public class Rect {public int x = 0;public int y = 0;public int w = 0;public int h = 0;public int s_W = 0;public int s_H = 0;public int space_X = 0;public int space_Y = 0;public boolean isRect = false;public String menu_str = null;public Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE);public Rect(int x, int y, int w, int h, String str, boolean isRect){this.x = x;this.y = y;this.w = w;this.h = h;this.menu_str = str;this.isRect = isRect;calculateStringWH();}public boolean isClicked(int x, int y){if ((x >= this.x && x <= (this.x + this.w))&& ((y >= this.y && y <= (this.y + this.h)))) { return true;}return false;}public void drawString(Graphics g){g.setColor(0, 0, 0);if(isRect){g.drawRect(x, y, w, h);}if(menu_str != null){g.setFont(font); g.drawString(menu_str, (x + space_X), (y + space_Y), Graphics.TOP | Graphics.LEFT);}}public void calculateStringWH(){if(menu_str != null){s_W = font.stringWidth(menu_str);s_H = font.getBaselinePosition();if(this.w > s_W){space_X = (this.w - s_W) >> 1;}if(this.h > s_H){space_Y = (this.h - s_H) >> 1;}}}}
画出游戏菜单的方法
import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;import javax.microedition.lcdui.*;import java.util.Vector;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Font;import javax.microedition.lcdui.Graphics;public class MenuMIDlet extends MIDlet { private MenuCanvas mc; public static MenuMIDlet inc; public MenuMIDlet() { mc = new MenuCanvas(); inc = this; } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { Display.getDisplay(this).setCurrent(mc); }}class MenuCanvas extends Canvas { private final int LOGO = 0; private final int MENU = 1; private final int GAME = 2; private final int INFO = 3; private final int HELP = 4; private final int EXIT = 5;// 常量表示各个状态 private int zt;// 状态变量 private int width, height;// 屏幕宽和高 private Font ft;// 字体 private String smenu[] = { "new game", "infomation", "hlep", "exit" };// 菜单文字 private String sinfo = " 作者:XXX\n" + " 这些内容你慢慢想";// 介绍文字 private String info[];// 保存介绍文字 private String shelp = "2,8,4,9控制上,下,左,右,确定/5键确定选项,等等等等.这些地方你也自己想吧";// 帮助文字 private String help[];// 保存帮助文字 private int n, m; public MenuCanvas() { width = getWidth(); height = getHeight(); ft = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE); switchZ(MENU); } public void switchZ(int zt) {//改变状态时要做的事 switch (zt) { case LOGO: // 我这里就不做LOGO了. break; case MENU: break; case GAME: // 游戏等菜单做完了再教你做游戏,一步步来 break; case INFO: info = format(sinfo, width, ft); break; case HELP: help = format(shelp, width, ft); break; case EXIT: m = 0; break; } this.zt = zt; } protected void paint(Graphics g) { g.setClip(0, 0, width, height); g.setColor(0x000000); g.fillRect(0, 0, width, height); switch (zt) { case LOGO: break; case MENU: drawmenu(g); break; case INFO: drawinfo(g); break; case HELP: drawhelp(g); break; case EXIT: drawexit(g); break; } } private void drawexit(Graphics g) { g.setColor(0x00ff00); g.setFont(ft); g.drawString("are you exit", width / 2, height / 2 - 50, Graphics.HCENTER | Graphics.TOP); if (m == 1) { g.setColor(0xff0000); } else { g.setColor(0xffffff); } g.drawString("yes", 35, height - 50, 20); if (m == 0) { g.setColor(0xff0000); } else { g.setColor(0xffffff); } g.drawString("no", width - 35, height - 50, 24); } private void drawhelp(Graphics g) { g.setColor(0xffffff); g.setFont(ft); for (int i = 0; i < help.length; i++) { g.drawString(help[i], 0, i * ft.getHeight(), 20); } } private void drawinfo(Graphics g) { g.setColor(0xffffff); g.setFont(ft); for (int i = 0; i < info.length; i++) { g.drawString(info[i], 0, i * ft.getHeight(), 20); } } public void drawmenu(Graphics g) { g.setColor(0x0000ff); g.setFont(ft); for (int i = 0; i < smenu.length; i++) { g.drawString(smenu[i], width / 2, height / 2 + i * ft.getHeight() - 50, Graphics.HCENTER | Graphics.TOP); } g.setColor(0xff0000); g.drawRect(width / 2 - 50, height / 2 + n * ft.getHeight() - 50, 100, ft.getHeight()); } public String[] format(String text, int maxWidth, Font ft) {// 字符串切割,实现字符串自动换行 String[] result = null; Vector tempR = new Vector(); int lines = 0; int len = text.length(); int index0 = 0; int index1 = 0; boolean wrap; while (true) { int widthes = 0; wrap = false; for (index0 = index1; index1 < len; index1++) { if (text.charAt(index1) == '\n') { index1++; wrap = true; break; } widthes = ft.charWidth(text.charAt(index1)) + widthes; if (widthes > maxWidth) { break; } } lines++; if (wrap) { tempR.addElement(text.substring(index0, index1 - 1)); } else { tempR.addElement(text.substring(index0, index1)); } if (index1 >= len) { break; } } result = new String[lines]; tempR.copyInto(result); return result; } protected void keyPressed(int arg0) { repaint(); switch (this.getGameAction(arg0)) { case FIRE: switch (zt) { case MENU: switch (n) { case 0: // 新游戏没写 break; case 1: switchZ(INFO); break; case 2: switchZ(HELP); break; case 3: switchZ(EXIT); break; } break; case INFO: switchZ(MENU); break; case HELP: switchZ(MENU); break; case EXIT: switch (m) { case 0: switchZ(MENU); break; case 1: MenuMIDlet.inc.notifyDestroyed(); break; } } break; case UP: switch (zt) { case MENU: n--; if (n < 0) { n = 3; } break; } break; case DOWN: switch (zt) { case MENU: n++; if (n > 3) { n = 0; } break; } break; case LEFT: switch (zt) { case EXIT: m++; if (m > 1) { m = 0; } break; } break; case RIGHT: switch (zt) { case EXIT: m--; if (m < 0) { m = 1; } break; } break; } }}
- J2ME的一些模版
- 计算几何的一些模版
- 共享一些J2ME的源码
- 初学J2ME的一些经验
- 一些j2me的资料zt
- J2ME开发的一些体会
- J2ME开发的一些体会
- 一些J2ME开发的FAQ
- J2ME项目的一些经验
- 关于一些J2ME的有用的网址
- Smarty模版引擎的一些基本知识点
- c++模版的一些使用方法(一)
- c++模版的一些使用方法(二)
- c++模版的一些使用方法(三)
- c++模版的一些使用方法(四)
- 一些常用mvc模版引擎的配置
- 图论的一些事儿 模版
- C++ 模版中的一些稀奇古怪的技巧
- android应用开机自动运行程序
- BeanUtils的拷贝功能
- VC++ (VS2008)里面char和LPTSTR的转换问题
- Nhibernate 开发中遇到过的错误
- windows 7开启独立补丁
- J2ME的一些模版
- 操作无法完成.键入的打印机名不正确,或者指定的打印机没有连接到服务器上.有关详细信息
- c++编写哈希表
- javascript 如何判断 null undifined
- win7 中的 "link" 命令
- 昨夜
- android播放音乐
- 使用Jquery随机删除一个顺序列表中某个子元素的方法,保持效果统一性
- 【转】程序员技术练级攻略