import java.util.Vector; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; public class NameTextField { Maler maler; Vector name; int backcolorR, backcolorG, backcolorB; int textcolorR, textcolorG, textcolorB; int width, height; int xCenter, yCenter; int charwidth; int charnummer; long time; boolean blink = true; public NameTextField(Maler maler) { this.maler = maler; backcolorR = 0; backcolorG = 0; backcolorB = 0; textcolorR = 255; textcolorG = 255; textcolorB = 255; width = 20; height = Font.getDefaultFont().getHeight() + 2; xCenter = 0; yCenter = 0; name = new Vector(1, 1); name.addElement(new NameChar('A')); charwidth = Font.getDefaultFont().charWidth('A'); time = System.currentTimeMillis(); } public void setCenter(int x, int y) { xCenter = x; yCenter = y; } public void setBackColor(int R,int G,int B){ backcolorR=R; backcolorG=G; backcolorB=B; } public void setTextColor(int R,int G,int B){ textcolorR=R; textcolorG=G; textcolorB=B; } public void setWidth(int x) { charnummer = x; width = charnummer * charwidth; } public void erscheinen(Graphics g) { int color = g.getColor(); g.setColor(backcolorR, backcolorG, backcolorB); g.fillRect(xCenter - width / 2, yCenter - height / 2, width, height); g.setColor(0, 255, 0); g.drawRect(xCenter - width / 2 - 1, yCenter - height / 2 - 1, width + 1, height + 1); g.setColor(backcolorR, backcolorG, backcolorB); g.drawRect(xCenter - width / 2 - 2, yCenter - height / 2 - 2, width + 3, height + 3); g.setColor(textcolorR, textcolorG, textcolorB); for (int i = 0; i < name.size(); i++) { g.drawString(((NameChar) name.elementAt(i)).getString(), xCenter - width / 2 + i * charwidth, yCenter - height / 2 + 1, Graphics.TOP | Graphics.LEFT); } if (System.currentTimeMillis() - time > 300) { time = System.currentTimeMillis(); blink = !blink; } if (blink) { g.fillRect(xCenter - width / 2 + (name.size() - 1) * charwidth, yCenter - height / 2 + 1, charwidth, height - 2); } g.setColor(color); } public void keyBehandeln(int key) { if (key == 38) { if (name.size() > 0) { ((NameChar) name.lastElement()).up(); } } if (key == 40) { if (name.size() > 0) { ((NameChar) name.lastElement()).down(); } } if (key == 37) { if (name.size() > 0) { int index = name.size() - 1; name.removeElementAt(index); } } if (key == 39) { if (name.size() < charnummer) { name.addElement(new NameChar('A')); } } } public String getText() { String text = ""; for (int i = 0; i < name.size(); i++) { text = text + ((NameChar) name.elementAt(i)).getString(); } return text; } }