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

📄 texteditcanvas.java

📁 J2ME上的一个播放器,可以更换皮肤.开源软件.
💻 JAVA
字号:
package inline.ui;

import java.util.*;
import javax.microedition.lcdui.*;
import inline.ui.ce.CanvasElement;
import inline.ui.le.SelectionStringElement;
import inline.sys.*;

public class TextEditCanvas extends ListFormCanvas 
{
    private String text;
    private int selidx;
    private boolean insel;
    private boolean upcase;
    private int lastKeyCode;
    private static final char[][] chartable =   
				    {{' ','0'},
				    {'.','?','!',',','@','\'','-','_',':',';',
					     '(',')','&','"','~','1','0','$',
					     '+','*','/','\\','[',']','=','>',
					     '<','#'},
				    {'A','B','C','2'},
				    {'D','E','F','3'},
				    {'G','H','I','4'},
				    {'J','K','L','5'},
				    {'M','N','O','6'},
				    {'P','Q','R','S','7'},
				    {'T','U','V','8'},
				    {'W','X','Y','Z','9'}
				    };

    public TextEditCanvas(HostCanvas pprevious, String txt)
    {
	super(pprevious,Base.getText(0x0605));
	
	Vector vct = new Vector();
	list.setLines(vct);
	list.setFastScroll(false);
	
	selidx = -1;
	upcase = true;
	lastKeyCode = (int)'1';
	insel = false;
	setText(txt);
    }
            
    public void selectPreview(Object obj)
    {
	super.selectPreview(obj);
	
	if (obj instanceof SelectionStringElement)
	{
	    if (insel)
	    {
		SelectionStringElement se = (SelectionStringElement)obj;
		selidx++;
		setText(se.getString());
		insel = false;
	    }
	    else
	    {
		updateList(lastKeyCode);
	    }
	}
    }

    protected void submit()
    {
	if (insel)
	{
	    setText(list.getSelectedText());
	}

	super.submit();
    }

    private void updateList(int keyCode)
    {
        int idx = keyCode-(int)'0';
        if (idx<chartable.length)
        {
	    char[] th = chartable[idx];
		
	    Vector vct = new Vector();
	    String vx;
	    
	    for(int i=0;i<th.length;i++)
	    {
		vx = "" + th[i];
		if (!upcase) vx = vx.toLowerCase();
		
		vx = text.substring(0,selidx)+vx+
			text.substring(selidx);
		
		SelectionStringElement sse = new SelectionStringElement(vx);
		sse.SetSelection(selidx,1);
		
		vct.addElement(sse);
	    }

	    insel = true;
	    
	    list.setLines(vct);
	    list.repaint();
	    
	    lastKeyCode = keyCode;
	}
    }
    
    private void setText(String ttext)
    {
	text = ttext;
	
	if (selidx==-1) selidx = text.length();
	
	Vector vct = new Vector();
	SelectionStringElement sse = new SelectionStringElement(text);
	sse.SetSelection(selidx,1);
	vct.addElement(sse);
	
	list.setLines(vct);
	list.repaint();
    }
    
    public String getText()
    {
	return text;
    }

    protected boolean keyPreview(int keyCode)
    {
	if (keyCode>=(int)'0' && keyCode<=(int)'9')
	{
	    if (!insel)
	    {
		updateList(keyCode);
	    }
	    else
	    {
		if (keyCode==(int)'0')
		{
		    upcase = !upcase; 
	    
		    int tli = list.getSelectedIndex();
		    updateList(lastKeyCode);
		    list.setSelectedIndex(tli);
		}
		else
		{
		    text = list.getSelectedText();
		    selidx++;
		    updateList(keyCode);
		}
	    }
	}
	
	if (!insel && keyCode == CanvasElement.LEFT && selidx>0)
	{
	    selidx--;
	    setText(text);
	}

	if (!insel && keyCode == CanvasElement.RIGHT && selidx<text.length())
	{
	    selidx++;
	    setText(text);
	}
	
	if (!insel && keyCode == (int)'*' && selidx>0)
	{
	    // backspace
	    text = text.substring(0, selidx-1) + text.substring(selidx);
	    selidx--;
	    setText(text);
	}

	if (!insel && keyCode == (int)'#' && selidx<text.length())
	{
	    // delete
	    text = text.substring(0, selidx) + text.substring(selidx+1);
	    setText(text);
	}

	if (insel && keyCode == CanvasElement.LEFT )
	{
	    lastKeyCode--;
	    if (lastKeyCode<(int)'0') lastKeyCode = (int)'9';
	    updateList(lastKeyCode);
	}

	if (insel && keyCode == CanvasElement.RIGHT)
	{
	    lastKeyCode++;
	    if (lastKeyCode>(int)'9') lastKeyCode = (int)'0';
	    updateList(lastKeyCode);
	}

	if (insel && keyCode == '0')
	{
	}
	
	return false;
    }

}


⌨️ 快捷键说明

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