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 回答