📄 qframe.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 + -