⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example10.java

📁 Micro Window Toolkit(MWT)是一个用于开发J2ME用户界面(UI)的工具包。它具有友好
💻 JAVA
字号:
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 { }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -