2012-03-02 2 views
0

Я использовал EditField с определенной шириной и высотой, которая работает хорошо, но когда я вхожу в текст в EditField, я не могу видеть текст и несколько раз, когда я нажимаю на это, я получаю NullPointerException. Я не могу понять, введен ли текст или нет. Кроме того, я не вижу курсора в своем поле. Если есть какие-либо ошибки, пожалуйста, дайте мне советы.Задание ширины и высоты для поля редактирования затрудняет просмотр текста в blackberry

Мой код:

 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); 

ответ

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); 
    } 
} 

вы можете получить выход в следующий

enter image description here

+0

Спасибо и HelpMeToHelpYou. – user1213202