2012-06-06 4 views
0

내 정의는blackberry의 사용자 정의 verticalfieldmanager에 필드를 추가하는 방법은 무엇입니까?

public class Custom_TopField extends VerticalFieldManager { 
private static final int FIELD_HEIGHT = 70; 
private LabelField maintitle; 

private String _text; 

Custom_TopField(int color, String text) { 
    super(Manager.NO_VERTICAL_SCROLL); 
    _text = text; 
    Background background = BackgroundFactory.createSolidBackground(color); 
    setBackground(background); 
    maintitle = new LabelField(_text, Field.FIELD_VCENTER | Field.FIELD_HCENTER); 
    Font font = Font.getDefault().derive(Font.BOLD, 35); 
    maintitle.setFont(font); 
    add(maintitle); 
} 

protected void sublayout(int width, int height) { 
    width = Math.min(width, getPreferredWidth()); 
    height = Math.min(height, getPreferredHeight()); 
    setExtent(width, height); 
} 

public int getPreferredHeight() { 
    return FIELD_HEIGHT; 
} 

public int getPreferredWidth() { 
    return Display.getWidth(); 
} 

public void paint(Graphics graphics) { 
    int rectHeight = getPreferredHeight(); 
    int rectWidth = getPreferredWidth();  
    graphics.drawRect(0, 0, rectWidth, rectHeight);  
    super.paint(graphics); 
} 
} 

verticalfieldmanger 내가 add(maintitle)하지만 verticalfield의 중간 나오지 않았지만.

super(Manager.NO_VERTICAL_SCROLL | Manager.USE_ALL_WIDTH); 

는 또한 필드에 :

이 생성자에 플래그를 추가

+0

관리자가 수평 및 수직 가운데에 하나의'LabelField only'를 포함해야합니까? – Rupak

답변

0

이 시도 할 수

maintitle = new LabelField(DrawStyle.HCENTER | Field.FIELD_HCENTER); 

이 수평 분야를 중심으로한다. 세로로 가운데에 플래그를 추가 할 수도 있지만 VFM의 세로 스크롤에 문제가 있기 때문에 작동하지 않을 가능성이 높습니다. 규칙은 가로로 가운데에 VerticalFieldManager을 사용하고 세로로 가운데에 넣을 때는 HorizontalFieldManager을 사용합니다.

HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.USE_ALL_HEIGHT); 
    Field toCenter = new <Field>(DrawStyle.VCENTER | Field.FIELD_VCENTER); 
    hfm.add(toCenter); 

당신은 이론적으로 두 방법을 결합하고, 다른 하나는 내부에 하나의 관리자를 중첩 해결책을 해결할 수 : 이것은 당신이 수직에 중심을 수있는 방법입니다.

관련 문제