对齐EditField

时间:2011-09-15 10:34:41

标签: blackberry blackberry-editfield

我已经创建了一个lable和RoundedEditField。但是我无法使用具有特定边距的blackberry中的lableEditField。 怎么做.. 听到是代码

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

1 个答案:

答案 0 :(得分:2)

如果您希望它位于LabelField下,则需要将它们放在VerticalFieldManager而不是Horizo​​ntalFieldManager中。这应该适合你:

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

另外,您可以考虑创建一个RoundedBasicEditField(或任何您喜欢的名称)类,这样您就不必在代码中保持匿名对BasicEditField进行分类(使代码更具可读性,并且更容易实现更改如果你找到其他你想做的事情,那就为他们所有人。)