📄 setkeys.java
字号:
package huaroad;// Download by http://www.codefans.netimport com.siemens.mp.io.*;import java.io.IOException;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;// 按键设置public class SetKeys extends List implements CommandListener{ private static final String[] lskeys = { "左移: ", "右移: ", "上移: ", "下移: ", "选择: " }; private static String[] listKeys = { "","","","","" }; private static byte[] sckey = { 0,0,0,0,0 }; private static final Command cmd = new Command("返回", Command.BACK, 1); private Display display; private HRGame wingame; private int sindex; public SetKeys(byte ckey[]) { super("按键设置", IMPLICIT); int i; for (i=0; i<5; i++) // 列出可设置项 { sckey[i] = ckey[i]; listKeys[i] = lskeys[i] + exchkey(sckey[i]); append(listKeys[i], null); } addCommand(cmd); } public void activate(Display disp, HRGame backgame) { display = disp; wingame = backgame; show(); } public void show() { display.setCurrent(this); setCommandListener(this); } private String exchkey(int keynum) // 键码/键名对应关系 { switch(keynum) { case Canvas.KEY_NUM0: // '0' return "0"; case Canvas.KEY_NUM1: // '1' return "1"; case Canvas.KEY_NUM2: // '2' return "2"; case Canvas.KEY_NUM3: // '3' return "3"; case Canvas.KEY_NUM4: // '4' return "4"; case Canvas.KEY_NUM5: // '5' return "5"; case Canvas.KEY_NUM6: // '6' return "6"; case Canvas.KEY_NUM7: // '7' return "7"; case Canvas.KEY_NUM8: // '8' return "8"; case Canvas.KEY_NUM9: // '9' return "9"; case Canvas.KEY_POUND: // '#' return "#"; case Canvas.KEY_STAR: // '*' return "*"; case -1: // LSK return "左软键"; case -59: // UP return "上"; case -60: // DOWN return "下"; case -11: // DIAL return "通话键"; case -12: // HANG // 右软键、挂机键保留 case -4: // -4: RSK return ""; case -61: // LEFT // 6688 return "左"; case -62: // RIGHT // 6688 return "右"; case -63: return "侧键▼"; // 6688 case -14: return "侧键-"; // 6688 case -13: return "侧键+"; // 6688 case -6: return "侧键●"; // 6688 case -5: return "通讯录键"; // 3118 default: return ""; } } public void getkey(byte keynum) // 显示当前按键 { String keyitem = exchkey(keynum); if (keyitem != "") { delete(sindex); keyitem = lskeys[sindex] + keyitem; insert(sindex, keyitem, null); setSelectedIndex(sindex, true); sckey[sindex] = keynum; ///////////////////////////////////////////// // write key try { File keyfile = new File(); int fid = keyfile.open("CtrlKey"); keyfile.write(fid, sckey, 0, 5); keyfile.close(fid); } catch(IOException ioexception) { } catch(NullPointerException npe){ } //////////////////////////////////////////////*/ } show(); } public void commandAction(Command command, Displayable displayable) { if(command == cmd) wingame.getkeys(sckey); else { sindex = getSelectedIndex(); // 进入按键设置画面 String keyname; switch(sindex) { case 0: keyname = "左移";break; case 1: keyname = "右移";break; case 2: keyname = "上移";break; case 3: keyname = "下移";break; case 4: keyname = "选择/取消";break; default: keyname = "";break; } SetKeyCanvas canvas = new SetKeyCanvas(keyname); display.setCurrent(canvas); canvas.activate(this); } } private class SetKeyCanvas extends Canvas // 按键设置画面 { private SetKeys winList; private String kname; public SetKeyCanvas(String kn) { kname = kn; } public void paint(Graphics g) { g.drawString( "请按一个键作为\n“" + kname + "”\n的控制键!", 0, 0, Graphics.TOP | Graphics.LEFT); } public void activate(SetKeys klist) { winList = klist; } protected void keyPressed(int keynum) { winList.getkey((byte)keynum); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -