2011-09-15 9 views
0

私は1つのlableとRoundedEditFieldを作成しましたが、私は黒いベージのlableの下でそのRoundedEditFieldをspcific marginにすることができません。それを行うにはどのように ... 聞くには、あなたはそれがlabelFieldプロパティの下になりたい場合は、あなたがVerticalFieldManagerはなくHorizo​​ntalFieldManagerでそれらを配置する必要がありますコードEditFieldの整列

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

問題を解決するためにコードを投稿してください – koti

答えて

2

です。これはあなたのために働く必要があります:あなたは、コード内で匿名クラス分けのBasicEditFieldを維持する必要はありませんので

サイドノートで
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を作成しますを考慮することができますあなたがやりたいことが他に見つかった場合は、コードを読みやすくし、すべての変更を簡単に実装することができます)。