Blackberry 编辑字段的对齐

Blackberry 编辑字段的对齐,blackberry,blackberry-editfield,Blackberry,Blackberry Editfield,我已经创建了一个标签和RoundedEditField。但我无法在blackberry的标签下创建一个带有特殊边距的RoundedEditField。 怎么做。。 听说是密码 enter code here public class MyClass extends MainScreen implements FieldChangeListener { ButtonField next; Bitmap bit; //String emp_id,emp_name,salary;

我已经创建了一个标签和RoundedEditField。但我无法在blackberry的标签下创建一个带有特殊边距的RoundedEditField。 怎么做。。 听说是密码

enter code here
 public class MyClass extends MainScreen implements FieldChangeListener { 


 ButtonField next; 
  Bitmap bit; 
  //String emp_id,emp_name,salary; 

      public MyClass() 
     { 
    bit=Bitmap.getBitmapResource("PlainScreen.png"); 
    VerticalFieldManager v_mgr=new VerticalFieldManager() 
    //HorizontalFieldManager h_mgr = new HorizontalFieldManager()
       { 
       protected void paint(Graphics graphics) 
       { 
       graphics.drawBitmap(0, 0, Display.getWidth(),Display.getHeight(), bit, 0, 0); 
       super.paint(graphics); 
       } 
        protected void sublayout(int maxWidth, int maxHeight) //It fit the image to                  device width and height. 
      { 
      super.sublayout(Display.getWidth(),Display.getHeight()); 
       setExtent(Display.getWidth(),Display.getHeight()); 
     } 
     }; 


      HorizontalFieldManager hSecond = new HorizontalFieldManager(USE_ALL_WIDTH); 
      /*BasicEditField roundedBorderEdit = new BasicEditField();
      XYEdges padding = new XYEdges(15, 15, 15, 15);
      int color = Color.WHITE;
      int lineStyle = Border.STYLE_FILLED;
      Border roundedBorder = BorderFactory.createRoundedBorder(padding, 
           color, lineStyle);
      roundedBorderEdit.setBorder(roundedBorder);
      */
     LabelField lbl= new LabelField("LastName:", LabelField.FIELD_HCENTER |  LabelField.NON_FOCUSABLE ){
     protected void paint(Graphics g)
     {
         Font font1 = getFont();
         g.setColor(Color.WHITE);
         super.paint(g);
     }};

      BasicEditField lblName = new BasicEditField(" ","",50,BasicEditField.FIELD_HCENTER) 
     { 

      protected void paint(Graphics graphics) 
    { 
        Font font= getFont();
        graphics.drawRoundRect(0, 0, 240, font.getHeight(), 30, 30);
        graphics.setColor(Color.BLACK);
        super.paint(graphics);
       graphics.setColor(Color.WHITE); 
       super.paint(graphics); 
      } 
      }; 
        hSecond.add(lbl);
        hSecond.add(lblName);
        hSecond.setMargin(0, 0, 0, 50);
        hSecond.setPadding(5, 30, 20, 0);
        v_mgr.add(hSecond); 
        //v_mgr.setPadding(0, 0, 0, 10);
        HorizontalFieldManager hThird = new HorizontalFieldManager(USE_ALL_WIDTH);
        LabelField lbl1= new LabelField("Number:",LabelField.FIELD_HCENTER |     LabelField.NON_FOCUSABLE){
            protected void paint(Graphics g)
            {
             Font font = getFont();
             g.setColor(Color.WHITE);
             super.paint(g);
            }};
       BasicEditField lblName1 = new BasicEditField("      ","",50,BasicEditField.FIELD_HCENTER) 
     { 
        protected void paint(Graphics graphics) { 
              Font font1= getFont();
              graphics.drawRoundRect(0, 0, 240, font1.getHeight(), 30, 30);
              graphics.setColor(Color.BLACK);
              super.paint(graphics);
        graphics.setColor(Color.WHITE); 
         super.paint(graphics); 
        } 
      }; 
      //lblEmail.setFont(StaticVariables.font2);
      hThird.add(lbl1);
      hThird.add(lblName1); 
      hThird.setMargin(0, 0, 0, 50);
      //PasswordEditField txtEmail = new PasswordEditField(); 
        //hThird.add(txtEmail); 
       hThird.setPadding(5, 30, 20, 0); 
      v_mgr.add(hThird); 
      //v_mgr.setPadding(0, 0, 0, 10);
    add(v_mgr); 
       } 
         public void fieldChanged(Field field, int context) 
         { 
         // TODO Auto-generated method stub 
         }
    }

如果你想把它放在LabelField下,你需要把它们放在垂直的FieldManager里,而不是水平的FieldManager里。这应该适合您:

VerticalFieldManager vfm = new VerticalFieldManager();
LabelField lbl = new LabelField("Last Name:");
lbl.setMargin(0, 0, yourMargin, 0);
BasicEditField lblName = new BasicEditField() { // your rounded code };
vfm.add(lbl);
vfm.add(lblName);
hfmSecond.add(vfm);

在一个旁注中,您可以考虑创建一个RayBasic编辑字段(或者任何您想要的名称)类,这样您就不必在代码中保持匿名分类Basic EddiField(使代码更可读,而且如果您还想做其他的事情,更容易实现对所有这些代码的更改)。请将您的代码发布到解决问题中。