Search code examples
blackberryjava-meblackberry-storm

how to use image for text field - j2me blackberry


I am using an image for text field.

When I focus on it to write something the first letter of the text that I write gets half cut.

How to avoid that?

My code is:

textbox = new EditField(EditField.NO_NEWLINE) 
    {
     protected void layout(int width, int height) 
     {
         super.layout(1000, 38);
         super.setExtent((Display.getWidth()),30); 
     }
    }

 manager = new VerticalFieldManager(HORIZONTAL_SCROLL)
    {
     protected void paint(Graphics g) 
    {
      int x = this.getHorizontalScroll();
         g.drawBitmap( x, 0,textbox.getWidth(),textboxc.getHeight(),textbox, 0, 0 );
         super.paint(g);
    }
         protected void sublayout(int maxWidth, int maxHeight) 
         {
             Field field = testbox;
             layoutChild(field, Display.getWidth(), Display.getHeight());
             setPositionChild(field, 148, 8);
             super.sublayout(maxWidth, maxHeight);
        }
   }

manager.add(textbox);

Solution

  • textbox= new EditField(" ","",500,EditField.NO_NEWLINE | Field.FOCUSABLE) 
             {
                 protected void paint(Graphics g)
                    {
                        g.setColor(Color.MAROON);
                        super.paint(g);
                    }
                protected boolean keyChar(char key, int status, int time) 
                 {
                    return super.keyChar(key, status, time);
                 }
             };
    
    
             manager = new VerticalFieldManager(HORIZONTAL_SCROLL )
             {
                 protected void paint(Graphics g) 
                    {
                     int x = this.getHorizontalScroll();
                     if(textbox.getText().equals(""))
                     {
                         g.drawBitmap( x, 0, textbox_img.getWidth(), textbox_img.getHeight(), textbox_img, 0, 0 );
                     }
    
                        super.paint(g);
                    }
    }
    manager.add(textbox);