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

📄 qframe.java

📁 j2me 高级UI
💻 JAVA
字号:
/**
 * 作者:cat 戚永城
 * 时间:2008-3-1
 * QQ:415898635
 * E-Mail:	415898635@qq.com
 * 			qyc_12345@163.com
 * 
 * */
package org.qui.container;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import org.qui.conmponent.QMenuBar;
import org.qui.info.Attribute;
import org.qui.info.Key;
import org.qui.manager.QItem;
import org.qui.manager.UIManager;

public class QFrame extends Canvas {

	private UIManager ui = null;

	public int frm_Width = 0;

	public int frm_Height = 0;

	public static Display display;
	
	private int br=0;
	private int bg=0;
	private int bb=0;
	
	private int fr=0;
	private int fg=0;
	private int fb=0;
	
	public QFrame(String title,Display display) {
		setFullScreenMode(true);
		this.title=title;
		QFrame.display=display;
		frm_Width=getWidth();
		frm_Height=getHeight();
		
		ui = new UIManager(this);
		initIcon();
		br=Attribute.backR;
		bg=Attribute.backG;
		bb=Attribute.backB;
		fr=Attribute.foreR;
		fg=Attribute.foreG;
		fb=Attribute.foreB;
	}
	
	public String title="";
	public void setTitle(String title){
		this.title=title;
	}
	
	public void setSkin(int skin){
		Attribute.loadSkin(skin);
	}
	
	private Image icon = null;

	public void initIcon() {
		try {
			icon = Image.createImage(Attribute.skinRoot+"icon.png");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void add(QItem item) {
		this.ui.addItem(item);
		item.setUIManager(ui);
	}

	public void addItem(QItem item) {
		this.ui.addItem(item);
		System.out.println(ui.offx);
		item.setUIManager(ui);
	}

	public void addMenuBar(QMenuBar menuBar) {
		ui.addMenuBar(menuBar);
	}

	protected void paint(Graphics g) {
		//画背景
		g.setColor(br,bg,bb);
		g.fillRect(0, 0, frm_Width, frm_Height);
		//画组件
		int list = 0;
		while (list < ui.getItemSum()) {
			if (ui.getItem(list).isVisible()) {
				ui.getItem(list).paint(g);
			}
			list++;
		}
		selfPaint(g);
		if(ui.getMenuBar()!=null){
			ui.getMenuBar().paint(g);
		}
	}

	
	private void selfPaint(Graphics g) {
		// 画框架
		g.setColor(Attribute.title_backR,Attribute.title_backG,Attribute.title_backB);
		g.fillRect(0, 0, frm_Width, 24);
		g.drawImage(icon, 4, 4, Graphics.LEFT | Graphics.TOP);
		g.setColor(fr,fg,fb);
		g.drawString(title, frm_Width/2,12-g.getFont().getHeight()/2, Graphics.TOP | Graphics.HCENTER);
		//画菜单部分的覆盖
		g.setColor(br,bg,bb);
		g.fillRect(0, frm_Height-20, frm_Width, 20);//20 是menu的高度
		//画各种标记符号~~~~!!!!!!!!!!!!.
		//g.setColor(255, 255, 255);
		//g.drawLine(frm_Width - 36, 16, frm_Width - 28, 16);
		//g.drawRect(frm_Width - 24, 8, 8, 8);
		//g.drawLine(frm_Width - 12, 8, frm_Width - 4, 16);
		//g.drawLine(frm_Width - 12, 16, frm_Width - 4, 8);
		// paint end
	}

	public UIManager getUIManager() {
		return ui;
	}
	//按键按下响应动作
	public void keyPressed(int keyCode) {
		if (ui.getMenuBar()!=null) {
			ui.getMenuBar().keyPressed(keyCode);
		}

		if (ui.getMenuBar()!=null&&ui.getMenuBar().menuOpen) {

		} else {
			if (ui.selector.inComboItem || ui.selector.inInputItem) {
				ui.getItem(ui.selector.selected).keyPressed(keyCode);
			} else {
				if (keyCode == Key.LEFT || keyCode == Key.UP) {
					int index = ui.selector.selected;
					while (!ui.selector.preElement()) {
						if (ui.selector.isLast) {
							ui.selector.selectorBack(ui.selector.selected,index);
							break;
						}
					}
				} else if (keyCode == Key.RIGHT || keyCode == Key.DOWN) {
					int index = ui.selector.selected;
					while (!ui.selector.nextElement()) {
						if (ui.selector.isLast) {
							ui.selector.selectorBack(ui.selector.selected,index);
							break;
						}
					}
				} else if (keyCode == Key.FIRE) {
					QItem item = ui.getItem(ui.selector.selected);
					if (item != null) {
						item.keyPressed(keyCode);
					}
				}
			}
		}

		repaint();
	}

	// 按键抬起只响应事件
	public void keyReleased(int keyCode) {
		if (ui.getMenuBar()!=null) {
			ui.getMenuBar().keyReleased(keyCode);
		}

		if (ui.getMenuBar()!=null&&ui.getMenuBar().menuOpen) {

		} else {
			if (ui.selector.inComboItem || ui.selector.inInputItem) {
				ui.getItem(ui.selector.selected).keyReleased(keyCode);
			} else {
				if (keyCode == Key.FIRE) {
					QItem item = ui.getItem(ui.selector.selected);
					if (item != null) {
						item.keyReleased(keyCode);
					}
				}
			}

		}
		repaint();
	}

	public void keyRepeated(int keyCode) {
		
	}
	
	public void pointerPressed(int x, int y){
		System.out.println("position = "+x+" "+ y);
	}
	public void pointerReleased(int x, int y){
		System.out.println("position = "+x+" "+ y);
	}
	public void pointerDragged(int x, int y){
		System.out.println("position = "+x+" "+ y);
	}
}

⌨️ 快捷键说明

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