?? example10.java
字號(hào):
package example;
/*
* MWT - Micro Window Toolkit
* Copyright (C) 2007 Lucas Domanico - lucazd@gmail.com
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://j2me-mwt.sourceforge.net/
*/
import java.util.Random;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import mwt.Component;
import mwt.Skin;
import mwt.Window;
// Double Buffering
//
class Canvas10 extends Canvas implements Runnable {
Window win = new Window(20,20,100,100); // the main window -reference-
boolean exit; // setted to true to finish the application
Image[] skinImages = new Image[9];
int skinSize = 10;
// notify input
protected void keyPressed(int keyCode) { win.setKeyState(keyCode,Window.KEYSTATE_PRESSED,true); }
protected void keyReleased(int keyCode) { win.setKeyState(keyCode,Window.KEYSTATE_RELEASED,true); }
// loads the skin's images...
static Image[] loadSkinImages() {
Image[] si = new Image[9];
for(int i=0; i<9 ;i++)
try { si[i] = Image.createImage("/skin" + i + ".png"); }
catch(Exception e) { e.printStackTrace(); }
return si;
}
Canvas10() {
// win.setSkin(Window.STYLE_DEFAULT, new Skin(loadSkinImages(), skinSize));
// internal panel
Component panel = new Component(4,28,92,92,true) {
public int getWidth() { return win.getWidth() - 8; }
public int getHeight() { return win.getHeight() - 32; }
};
win.add(panel);
panel.add(new Component(0,0,300,300,false) {
protected void paint(Graphics g, Window window) {
g.setColor(0);
g.drawString("Press 0 to exit",4, 4,0);
g.drawString("2,8,4,6 to move window",4,20,0);
g.drawString("1,3,7,9 to resize window",4,36,0);
g.drawString("* and # to change skin size: " + skinSize + " pixels",4,52,0);
g.drawString("5 to set double buffer: " + win.isDoubleBuffered(),4,68,0);
}
protected boolean keyEvent(long key, Window window) {
switch((int)key) {
case Canvas.KEY_NUM2: win.setY(win.getY() - 2); break;
case Canvas.KEY_NUM8: win.setY(win.getY() + 2); break;
case Canvas.KEY_NUM4: win.setX(win.getX() - 2); break;
case Canvas.KEY_NUM6: win.setX(win.getX() + 2); break;
case Canvas.KEY_NUM9: win.setWidth(win.getWidth() + 4); break;
case Canvas.KEY_NUM7: win.setWidth(win.getWidth() - 4); break;
case Canvas.KEY_NUM3: win.setHeight(win.getHeight() + 4); break;
case Canvas.KEY_NUM1: win.setHeight(win.getHeight() - 4); break;
case Canvas.KEY_NUM5: if(key >> 32 == 0) win.setDoubleBuffered(!win.isDoubleBuffered()); break;
case Canvas.KEY_NUM0: exit = true; break;
default:
switch((int)key) {
case Canvas.KEY_POUND: skinSize += 2; break;
case Canvas.KEY_STAR: skinSize -= 2; break;
default: return false;
}
// win.setSkin(Window.STYLE_DEFAULT, new Skin(loadSkinImages(), skinSize));
}
return true;
}
});
win.setFocusFirst();
}
public void run() {
while(!exit) { // main loop
win.repeatKeys(true);
repaint();
serviceRepaints();
try { Thread.sleep(1); }
catch(Exception e) { e.printStackTrace(); }
}
Example10.instance.notifyDestroyed();
}
protected void paint(Graphics g) {
g.setColor(0xFFFFFFFF); // clear graphics
g.fillRect(0,0,getWidth(),getHeight());
Random r = new Random(); // paint the "background"
for(int i=0; i<10 ;i++) {
g.setColor(Math.abs(r.nextInt()));
g.drawRect(Math.abs(r.nextInt())%128,Math.abs(r.nextInt())%128,Math.abs(r.nextInt())%128,Math.abs(r.nextInt())%128);
}
win.paint(g); // and paint the window...
}
}
public class Example10 extends MIDlet {
static MIDlet instance;
static Canvas canvas;
protected void startApp() throws MIDletStateChangeException {
instance = this;
Canvas10 c = new Canvas10();
canvas = c;
Display.getDisplay(this).setCurrent(c);
new Thread(c).start();
}
protected void pauseApp() { }
protected void destroyApp(boolean arg0) throws MIDletStateChangeException { }
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -