こんにちは、コードを入力しましたが、うまくいかないようです。何がエラーなのか教えていただけますか?
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FocusChangeListener;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.BasicEditField;
import net.rim.device.api.ui.component.EditField;
import net.rim.device.api.ui.container.VerticalFieldManager;
public class CustomTextField extends VerticalFieldManager implements FocusChangeListener{
private int textWidth=0;
private Font font=Font.getDefault();
private int textHeight=0;
public EditField basicEditField;
public CustomTextField(int width,int height) {
textWidth=width;
textHeight=height;
VerticalFieldManager vfm=new VerticalFieldManager(Manager.FOCUSABLE);
basicEditField=new EditField(null,null,200, Field.EDITABLE|Field.FOCUSABLE|BasicEditField.NO_NEWLINE);
basicEditField.setFocusListener(this);
vfm.add(basicEditField);
add(vfm);
}
protected void sublayout(int maxWidth, int maxHeight) {
if(textWidth==0)
{
textWidth=maxWidth;
}
if(textHeight==0)
{
textHeight=maxHeight;
}
super.layout(textWidth, textHeight);
setExtent(textWidth, textHeight);
}
protected void paint(Graphics graphics) {
graphics.setColor(Color.BLACK);
graphics.drawRect(basicEditField.getLeft(),basicEditField.getTop(), textWidth, textHeight);
}
public void setHeight(int height) {
textHeight= height;
}
public void setWidth(int width) {
textWidth= width;
}
public Font getFont() {
return font;
}
public void setFont(Font font) {
this.font = font;
}
public void focusChanged(Field field, int eventType) {
if(eventType==FOCUS_GAINED)
{
if(field==basicEditField)
{
basicEditField.setCursorPosition(basicEditField.getText().length());
}
}
}
}
入力されたものが画面に表示されません。内部で VerticalFieldManager を拡張する CustomTextField を作成しました。VerticalFieldManager に追加される EditField を追加しました。
しかし、うまくいきません。つまり、入力した内容が画面に表示されないということです。何がエラーなのか調べてもらえますか
を使用して CustomTextField を呼び出します
CustomTextField ctf=new CustomTextField(100,200):