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

📄 textarea.java

📁 开发框架。 一.说明: 此框架的意图是解决手机软件开发中常遇到
💻 JAVA
字号:
package org.gggeye.easymf.ui;

 

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextField;

import org.gggeye.easymf.log.Logger;
import org.gggeye.easymf.midlet.MIDletManager;

public class TextArea extends View implements Runnable,
		javax.microedition.lcdui.CommandListener {
	private Command ok = new Command("确定", Command.OK, Command.SCREEN);
	private Command cancel = new Command("取消", Command.CANCEL, Command.SCREEN);

	/**
	 * 最多显示的字符数字
	 */
	int maxSize;
	boolean showCaret = false;
	int type;
	java.util.TimerTask task;
	int size;
	
	Panel panel;

	/**
	 * name表示这个控件的名字
	 * 
	 * @param name
	 * @param text
	 * @param maxSize
	 * @param type
	 */
	public TextArea(Panel _panel, String _name, String _value, int _size, int _maxSize,
			int _type) {
		super(0x0, 0x0, null);
		this.panel = _panel;
		this.size = _size;
		this.maxSize = _maxSize;
		this.name = _name;
		this.value = _value;
		this.maxSize = _maxSize;
		this.type = _type;
		this.hasFocus = true;

	}

	public void doPaint(Pen _point, HtmlDocument _htmlDocument) {
        _point.save();
        _point.setColor(0x0A24C3);
        _point.drawRect(left, top, width, height);
        _point.setColor(this.fontColor);
        String tValue = value;
        if(tValue!= null && tValue.length() > 0 && this.type == TextField.PASSWORD){
        	tValue = "********";
        }
        _point.drawString(tValue,left + 1, top + 1,20);
        int x = left + this.font.stringWidth(value);
        if (_htmlDocument.focusIndex == index) {
            _point.setColor(0x0A24C3);
            paintCursor(x, top,_point);
        }else {
            if (task != null) {
                task.cancel();
                task = null;
            }
        }
        _point.reset();

    }


    /**
     * 绘制光标,这个光标是要求闪动得
     */
    private void paintCursor(int x, int y, Pen _point) {
    	//激活task,使空间有一个闪动的光标
    	if (task == null) {
            task = TimerTaskManager.getInstace().add(this, 300);
        } 
    	if(showCaret){
        _point.setColor(0x3112323);
        //  if (showCaret ) {
        _point.drawChar('|', x + 1, y , 20);
        _point.drawChar('|', x + 2, y, 20);
    	}
        // }
    }

	public void setText(String _value) {
		value = _value != null ? _value : "";
	}

	public void doClick(int _keyCode) {
		if(_keyCode == 8){
		TextFiledGUI tfg = new TextFiledGUI(value, maxSize, type);
		tfg.setCommandListener(this);
		tfg.setString(value);
		MIDletManager.show(tfg);
		}
	}

	public void run() {
		try {
			showCaret = !showCaret;
			panel.repaint();
			//Panel.instance.repaint();
		} catch (Exception e) {
			Logger.debug(e);
		}
		// WebBrowser.gcMemory(3000);
	}

	class TextFiledGUI extends javax.microedition.lcdui.TextBox {
		public TextFiledGUI(String text, int maxSize, int constraints) {
			super("用户输入", text, maxSize, constraints);
			this.addCommand(ok);
			this.addCommand(cancel);

		}

	}

	public void commandAction(Command c, Displayable d) {
		if (c == ok) {
			if (d instanceof TextFiledGUI) {
				TextFiledGUI t = (TextFiledGUI) d;
				this.value = t.getString();
			}
		} else {

		}
		MIDletManager.show(panel);
	}

}

⌨️ 快捷键说明

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