0

EditField適切に機能する指定された幅と高さで使用しましたが、テキストを入力するとテキストが表示されEditFieldず、クリックするとNullPointerException. テキストが入力されているかどうかがわかりません。また、フィールドにカーソルが表示されません。間違いがある場合は、提案をお願いします。

私のコードは次のとおりです。

       private EditField edto;
       private int tosetWidth =400 ,tosetHeight = 50;
       public WelcomeScreen()
       {
           /* Border For EditFields */
           Border bdr = BorderFactory.createRoundedBorder(new XYEdges(4, 4, 4, 4),Border.STYLE_SOLID);

           edto = new EditField(){

           protected void layout(int width, int height)
           {        
               setExtent(tosetWidth, tosetHeight);

           }

       };

       edto.setBorder(bdr);
4

1 に答える 1

2

このため、テキストが表示されません

protected void layout(int width, int height)
        {        
            setExtent(tosetWidth, tosetHeight);

        }

削除して、コードが機能していることを試してください

垂直スクロールと固定サイズでフィールドを編集したい場合は、次のことを試してください

/**
 * A class extending the MainScreen class, which provides default standard
 * behavior for BlackBerry GUI applications.
 */
public final class MyScreen extends MainScreen
{
    /**
     * Creates a new MyScreen object
     */
    public MyScreen()
    {        
        // Set the displayed title of the screen       
        setTitle("My Edit box Example");

        VerticalFieldManager vr=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR)
        {
            protected void sublayout(int maxWidth, int maxHeight) {
                super.sublayout(200,100);
                setExtent(200, 100);
            }
        };

        Border bdr = BorderFactory.createRoundedBorder(new XYEdges(4, 4, 4, 4),Border.STYLE_SOLID);
        EditField edto = new EditField(){
            public void paint(Graphics g) 
            {
                getManager().invalidate();
                super.paint(g);
            }
     };

     vr.setBorder(bdr);
     vr.add(edto);
     add(vr);
     }
}

次のように出力を得ることができます

ここに画像の説明を入力

于 2012-03-02T10:45:06.360 に答える