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

📄 ad.java

📁 // pica客户端J2ME源码
💻 JAVA
字号:
// pica客户端J2ME源码,100%可运行可修改,J2ME逆向工程经典作品
// 作者:fangji999
// QQ:57979471 Email:fangji999@163.com
// 博客:http://hi.baidu.com/ccall_net
// QQ群:51719370
// 如用此源码重新改写的软件或转载,请保留本人联系方式,作品原创作者

package pica;

import java.util.Hashtable;
import java.util.Vector;
import javax.microedition.lcdui.*;

// Referenced classes of package pica:
//			aa, Pica, d, v
//表情界面类
public final class ad extends aa
{

	private static String a[] = {
		":)", ":D", ":P", ":$", "(SX)", "*-)", "(EN)", "(SL)", ":|", ":(", 
		":S", "(H)", ":-o", "(JX)", "(a`)", ":'(", "(6)", ":@", "(Y)", "(N)", 
		"(TU)", "(HS)", "P(:", "{k}", "^o)", "(:-#)", "|-)", "(GD)", "+o(", "(886)", 
		"(K)", "(L)", "(Ss)", "(F)", "(W)", "(mo)", "(0)", "(pi)", "(Bomb)", "(h5)"
	};
	private static Hashtable b;
	private static final int c;
	private static final int di;///private static final int d;
	private static final int e;
	private static final int f;
	private static final int g;
	private static final int h;
	private static int i;
	private int j;
	private TextBox k;
	private int l;

	public ad(TextBox textbox)
	{
		super(Pica.l);
		l = 0;
		super.q = "添加表情";
		k = textbox;
		j = 0;
		Pica.ad = true;
		super.n = a(h, f);
		super.t = a(a.length, f);
	}

	private static int a(int i1, int j1)
	{
		if (i1 % j1 == 0)
			return i1 / j1;
		else
			return i1 / j1 + 1;
	}

	public final void a(Graphics g1)
	{
		l = super.oi * f;
		int i1 = g;
		int j1 = i - c - 4;
		g1.setColor(0xffffff);
		for (int k1 = l; k1 < a.length && k1 < l + h; k1++)
		{
			if (k1 % f == 0)
			{
				i1 = 3;
				j1 += c + 8;
			}
			g1.setClip(i1, j1, c, c);
			g1.drawImage(Pica.F, i1 - c * (k1 % 5), j1 - c * (k1 / 5), 20);
			g1.setClip(0, 0, v.a, v.b);
			if (k1 == j)
			{
				g1.setColor(120, 146, 210);
				g1.drawRect(i1 - 2, j1 - 2, c + 3, c + 3);
				g1.drawRect(i1 - 3, j1 - 3, c + 5, c + 5);
				g1.setColor(0xffffff);
			}
			i1 += c + g;
		}

	}

	public static void a()
	{
		int i1 = a.length;
		b = new Hashtable((i1 + i1) - 1);
		for (int j1 = i1 - 1; j1 >= 0; j1--)
			b.put(a[j1], new Integer(j1));

		b.put("(\\s)", new Integer(-3));
		b.put("(\\h)", new Integer(-4));
		b.put("(\\c)", new Integer(-5));
		b.put("(\\d)", new Integer(-6));
	}

	public static void a(Graphics g1, Vector vector, int i1, int j1)
	{
		int k1 = i1;
		int l1 = j1;
		boolean flag = false;
		Object obj = null;
		g1.setFont(Pica.q);
		for (int j2 = 0; j2 < vector.size(); j2++)
		{
			if (l1 >= v.b - v.j)
				return;
			Object obj1;
			if ((obj1 = vector.elementAt(j2)) instanceof String)
			{
				if (l1 >= i - 8)
				{
					g1.drawString((String)obj1, k1, l1, 20);
					k1 += Pica.q.stringWidth((String)obj1);
				}
				continue;
			}
			if (!(obj1 instanceof Integer))
				continue;
			int i2;
			if ((i2 = ((Integer)obj1).intValue()) == -1 || i2 == -2)
			{
				k1 = i1;
				l1 += e;
				continue;
			}
			if (i2 >= 0)
			{
				if (l1 >= i - 8)
				{
					k1 += 2;
					g1.setClip(k1, l1 - 2, c, c);
					g1.drawImage(Pica.F, k1 - c * (i2 % 5), l1 - 2 - c * (i2 / 5), 20);
					g1.setClip(0, 0, v.a, v.b);
					k1 += c;
					k1 += 2;
				}
				continue;
			}
			if (i2 < -2)
			{
				k1 += 2;
				g1.setClip(k1, l1 - 2, 18, 18);
				g1.drawImage(Pica.G, k1 + 18 * (i2 + 3), l1 - 2, 20);
				g1.setClip(0, 0, v.a, v.b);
				k1 += 20;
			}
		}

	}

	public static int a(String s, Vector vector, Graphics g1, int i1, int j1, boolean flag)
	{
		int k1 = i1;
		int l1 = j1;
		int i2 = s.length();
		int j2 = 0;
		int k2 = 0;
		boolean flag1 = false;
		int l2 = 0;
		int i3 = 1;
		Object obj = null;
		boolean flag2 = false;
		char ac[] = null;
		int k3 = 1;
		ac = s.toCharArray();
		if (g1 != null)
			g1.setFont(Pica.q);
		j2 = 0;
		for (k2 = 0; k2 < i2 - 1;)
		{
			switch (ac[k2])
			{
			case 10: // '\n'
				l2 = -1;
				flag1 = true;
				i3 = 1;
				break;

			case 58: // ':'
				if (ac[k2 + 1] == '\'' && k2 < i2 - 2 && ac[k2 + 2] == '(')
				{
					l2 = 15;
					flag1 = true;
					i3 = 3;
				}
				Object obj1;
				if (ac[k2 + 1] == '-' && k2 < i2 - 2 && ac[k2 + 2] == 'o')
				{
					l2 = 12;
					flag1 = true;
					i3 = 3;
				} else
				if ((obj1 = b.get(":" + ac[k2 + 1])) != null)
				{
					l2 = ((Integer)obj1).intValue();
					flag1 = true;
					i3 = 2;
				}
				break;

			case 40: // '('
				if (k2 < i2 - 2)
				{
					int j3 = k2 + 2;
					do
					{
						if (j3 >= k2 + 6 || j3 == i2)
							break;
						if (ac[j3] == ')')
						{
							Object obj2;
							if ((obj2 = b.get(new String(ac, k2, (j3 + 1) - k2))) != null)
							{
								l2 = ((Integer)obj2).intValue();
								flag1 = true;
								i3 = (j3 + 1) - k2;
							}
							break;
						}
						j3++;
					} while (true);
				}
				break;

			case 80: // 'P'
				if (ac[k2 + 1] == '(' && k2 < i2 - 2 && ac[k2 + 2] == ':')
				{
					l2 = 22;
					flag1 = true;
					i3 = 3;
				}
				break;

			case 123: // '{'
				if (ac[k2 + 1] == 'k' && k2 < i2 - 2 && ac[k2 + 2] == '}')
				{
					l2 = 23;
					flag1 = true;
					i3 = 3;
				}
				break;

			case 43: // '+'
				if (ac[k2 + 1] == 'o' && k2 < i2 - 2 && ac[k2 + 2] == '(')
				{
					l2 = 28;
					flag1 = true;
					i3 = 3;
				}
				break;

			default:
				if (k2 < i2 - 2 && ac[k2 + 2] == ')')
					if (ac[k2] == '*' && ac[k2 + 1] == '-')
					{
						l2 = 5;
						flag1 = true;
						i3 = 3;
					} else
					if (ac[k2] == '^' && ac[k2 + 1] == 'o')
					{
						l2 = 24;
						flag1 = true;
						i3 = 3;
					} else
					if (ac[k2] == '|' && ac[k2 + 1] == '-')
					{
						l2 = 26;
						flag1 = true;
						i3 = 3;
					}
				break;
			}
			if (flag1)
			{
				if (flag)
				{
					if (k2 > j2)
					{
						String s1 = new String(ac, j2, k2 - j2);
						g1.drawString(s1, k1, l1, 20);
						k1 += Pica.q.stringWidth(s1);
					}
					if (l2 == -1)
						return 1;
					if (l2 >= 0)
					{
						k1 += 2;
						g1.setClip(k1, l1 - 2, c, c);
						g1.drawImage(Pica.F, k1 - c * (l2 % 5), l1 - 2 - c * (l2 / 5), 20);
						g1.setClip(0, 0, v.a, v.b);
						k1 += c;
						k1 += 2;
					} else
					if (l2 < -2)
					{
						k1 += 2;
						g1.setClip(k1, l1 - 2, 16, 16);
						g1.drawImage(Pica.G, k1 + 16 * (l2 + 3), l1 - 2, 20);
						g1.setClip(0, 0, v.a, v.b);
						k1 += 16;
						k1 += 2;
					}
					if (k1 >= di)
						return 1;
				} else
				{
					if (k2 > j2)
						vector.addElement(new String(ac, j2, k2 - j2));
					if (l2 == -1)
					{
						vector.addElement(new Integer(-1));
						k1 = i1;
						k3++;
					} else
					{
						if (k1 + c > di)
						{
							vector.addElement(new Integer(-2));
							k3++;
							k1 = i1;
						}
						vector.addElement(new Integer(l2));
						k1 += c + 4;
					}
				}
				j2 = k2 += i3;
				flag1 = false;
				i3 = 1;
			} else
			{
				if (!flag && (k1 += Pica.q.charWidth(ac[k2])) > di)
				{
					vector.addElement(new String(ac, j2, k2 - j2));
					vector.addElement(new Integer(-2));
					j2 = k2;
					k1 = i1 + Pica.q.charWidth(ac[k2]);
					k3++;
				}
				k2++;
			}
		}

		k2 = i2;
		if (flag)
		{
			if (k2 > j2)
				g1.drawString(new String(ac, j2, k2 - j2), k1, l1, 20);
			return 1;
		}
		if (k2 > j2)
			vector.addElement(new String(ac, j2, k2 - j2));
		return k3;
	}

	public final void b()
	{
		if (j < f)
		{
			j += (a.length / f) * f;
			if (j >= a.length)
				j -= f;
		} else
		{
			j -= f;
		}
		if (j < l)
		{
			l -= f;
			super.oi--;
			return;
		}
		if (j >= l + h)
		{
			l = ((a.length - 1) / f + 1) * f - h;
			super.oi = super.t - super.n;
		}
	}

	public final void c()
	{
		j += f;
		if (j >= a.length)
			j %= f;
		if (j >= l + h)
		{
			l += f;
			super.oi++;
			return;
		}
		if (j < l)
		{
			l = 0;
			super.oi = 0;
		}
	}

	public final void j()
	{
		if (j % f == 0)
			if (j + f > a.length)
				j = a.length;
			else
				j += f;
		j--;
	}

	public final void k()
	{
		j++;
		if (j % f == 0)
		{
			j -= f;
			return;
		}
		if (j == a.length)
			j = (a.length / f) * f;
	}

	public final void a(v v1)
	{
		v1.e = "取消";
		v1.a("确定");
	}

	public final void d()
	{
		Pica.ad = false;
		k.insert(a[j], k.getCaretPosition());
		Pica.j.setCurrent(k);
	}

	public final void a(String s)
	{
		Pica.ad = false;
		if (s == "确定")
		{
			k.insert(a[j], k.getCaretPosition());
			Pica.j.setCurrent(k);
			return;
		} else
		{
			Pica.j.setCurrent(k);
			return;
		}
	}

	public final void h()
	{
	}

	static 
	{
		c = Pica.F.getWidth() / 5;
		di = v.a - 8;
		e = Pica.q.getHeight() + d.a;
		f = di / (c + 4);
		g = (v.a - c * f) / f;
		h = ((v.b - v.l - 22 - v.j) / (c + 8)) * f;
		i = v.l + 22;
	}
}

⌨️ 快捷键说明

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