0

こんにちは、コードを入力しましたが、うまくいかないようです。何がエラーなのか教えていただけますか?

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):
4

1 に答える 1

1

小切手

protected void paint(Graphics graphics) 

追加

super.paint(g);

その中で最後に。

于 2012-05-16T12:12:11.337 に答える