2013-05-13 52 views
0

我有一個GridFieldManager蒙山3列,我想調整其內容是這樣的:GridFieldManager黑莓對準領域

 
    |Title left | Title Center | Title Right| 

的問題是,我使用的是使用labelField的RichTextField,而不是因爲我想要的文字每個標題grap像這樣:

 
    |Title left | Title Center | Title Right | 
    |is wrapped | is wrapped too | also wrapped | 

如果我使用RichTextField而不是LabelField,那麼對齊會被忽略。這是我的代碼:

public class CustomGridFieldextends GridFieldManager { 

    private int numColumns = 3; 
    private int margin = 5; 

    public CustomGridField(String leftText, String centerText, String rightText) { 
     super(1, 3, GridFieldManager.USE_ALL_WIDTH); 
     setPadding(0, margin, 0, margin); 

     int columnWidth = (Display.getWidth()/numColumns); 
     for (int i = 0; i < numColumns; i++) { 
      setColumnProperty(i, GridFieldManager.FIXED_SIZE, columnWidth); 
     } 

     // leftmost text 
     RichTextField leftLabel = new RichTextField(leftText){ 
      protected void paint(Graphics g) { 
       g.setColor(Color.WHITE); 
       g.setFont(getFont().derive(Font.BOLD)); 
       super.paint(g); 
      } 
     }; 
     leftLabel.setFont(getFont().derive(Font.BOLD)); 
     add(leftLabel, Field.FIELD_LEFT); 

     // center text 
     RichTextField centerLabel = new RichTextField(centerText){ 
      protected void paint(Graphics g) { 
       g.setFont(getFont().derive(Font.BOLD)); 
       g.setColor(Color.WHITE); 
       super.paint(g); 
      } 
     }; 
     centerLabel.setFont(getFont().derive(Font.BOLD)); 
     add(centerLabel, Field.FIELD_HCENTER); 


     // rightmost text 
     RichTextField rightLabel = new RichTextField(rightText) { 
      protected void paint(Graphics g) { 
       g.setFont(getFont().derive(Font.BOLD)); 
       g.setColor(Color.WHITE); 
       super.paint(g); 
      } 
     }; 
     rightLabel.setFont(getFont().derive(Font.BOLD)); 
     add(rightLabel, Field.FIELD_RIGHT); 
    } 

    protected void paintBackground(Graphics g) { 
     // draw a nice background... 
    } 
} 

回答

1

找到了答案,原來,我不得不創建RichTextFields何時使用這種樣式:

new RichTextField("text on left",RichTextField.TEXT_ALIGN_LEFT); 
new RichTextField("text on center",RichTextField.TEXT_ALIGN_HCENTER); 
new RichTextField("text on right",RichTextField.TEXT_ALIGN_RIGHT); 

現在我工作的grapping ...

PD:在這裏找到它:http://v4ks1n.wordpress.com/2009/04/16/richtextfield-alignment/