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

📄 panel.java

📁 手机电子书阅读软件基本框架
💻 JAVA
字号:
/********************************************************************
 * 
 * 版权说明,此程序仅供学习参考。不能用于商业
 * 
 ********************************************************************/
package org.pook.ui.form;

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

import org.pook.log.Log;
import org.pook.ui.Command;
import org.pook.ui.Part;
import org.pook.ui.SoftButton;
import org.pook.ui.core.Platform;
import org.pook.ui.event.CommandListener;
import org.pook.ui.event.PartChangeListener;

 

/**
 * <b>类名:Panel.java</b> </br> 编写日期: 2006-9-15 <br/> 程序功能描述�? <br/> Demo: <br/>
 * Bug: <br/>
 * 
 * 程序变更日期 �?<br/> 变更作�?? �?<br/> 变更说明 �?<br/>
 * 
 * @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
 */
public abstract class Panel extends Canvas {
	private static Log log = Log.getLog("Panel");

	final int X = 0;

	final int Y = 1;

	final int WIDTH = 2;

	final int HEIGHT = 3;

	/** 显示主要部分.比如菜单的Icon,List的数据的位置 */
	int[] viewContent = new int[4];

	Image icon;
	Part part;
	
	SoftButton softButton;
	
	Part timer;
	
	public Panel(){
		init();
	}
	public Panel(Image icon) {
		init();
		this.icon = icon;
		
		 
		//此方法是让所以的Panel都添加一个TimerPart
		//以后重构的时候应该�?�虑要不要这么做
		//this.setTimer(null);
	}
	private void init() {
		setFullScreenMode(true);
	 
		initViewContent();
		this.softButton = new SoftButton();
	}

	public void addCommand(Command cmd) {
		if (cmd == null)
			return;
		softButton.addCommand(cmd);
	}

	
	public Part getPart() {
		return part;
	}

	public void append(Part part){
		this.part = part;
	}
	public void setPartChangeListener(PartChangeListener partChangeListener) {
		this.part.setPartChangeListener(partChangeListener);
	}

	public void removeCommand(int type) {

		softButton.removeCommand(type);
	}

	public void setSoftButtonListener(CommandListener cmdListener) {
		if (softButton != null)
			softButton.setCommandListener(cmdListener);
	}

	public void setSoftButtonStyle(int bgColor, int fontColor){
		this.softButton.setStyle(bgColor, fontColor);
	}

	public abstract void paint(Graphics g);

	protected abstract void keyPressed(int keyCode);

	/**
	 * 长按事件
	 */
	protected void keyRepeated(int keyCode) {
		keyPressed(keyCode);
	}

 
	 
	private void initViewContent() {
		viewContent[X] = 0;
		viewContent[Y] = 45;
		viewContent[WIDTH] = Platform.WIDTH;
		viewContent[HEIGHT] = Platform.HEIGHT;
	}

	public SoftButton getSoftButton() {
		return softButton;
	}

	public void setSoftButton(SoftButton softButton) {
		this.softButton = softButton;
	}
	
    /**
     * 增加时间显示
     */
	public void setTimer(Part timer){
		this.timer = timer;
	}
	
	void paintTimerImpl(Graphics g){
		if(timer != null)
			timer.paint(g);
	}
	
	public void repaintTimer(){
		if(timer != null){
			int [] view = timer.getView();
			repaint(view[X],view[Y],view[WIDTH], view[HEIGHT] );
		}
			
	}

}

⌨️ 快捷键说明

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