2009-10-26 68 views

回答

3

您可以使用绘画方法来修改标签布局,颜色和字体。
alt text http://img9.imageshack.us/img9/8017/custombutton.jpg
参见例如:

class CustomButton extends ButtonField { 
    int mHeight; 
    int mWidth; 

    public CustomButton(int height, int width, String label) { 
     super(label, CONSUME_CLICK); 
     mHeight = height; 
     mWidth = width; 
    } 

    public int getPreferredHeight() { 
     return mHeight; 
    } 

    public int getPreferredWidth() { 
     return mWidth; 
    } 

    protected void layout(int width, int height) { 
     super.layout(mWidth, mHeight); 
     setExtent(mWidth, mHeight); 
    } 

    protected void paint(Graphics graphics) { 
     graphics.setColor(Color.WHITE); 
     String label = getLabel(); 
     int x = (getPreferredWidth() - getFont().getAdvance(label)) >> 1; 
     int y = (getPreferredHeight() - getFont().getHeight()) >> 1; 
     graphics.drawText(label, x, y); 
    } 
} 

使用示例:

class Scr extends MainScreen implements FieldChangeListener { 
    CustomButton button1; 
    CustomButton button2; 
    CustomButton button3; 

    public Scr() { 
     add(button1 = new CustomButton(15, 60, "first")); 
     button1.setChangeListener(this); 
     add(button2 = new CustomButton(30, 120, "second")); 
     button2.setChangeListener(this); 
     add(button3 = new CustomButton(50, 200, "third")); 
     button3.setChangeListener(this); 
    } 

    public void fieldChanged(Field field, int context) { 
     if (field == button1) 
      Dialog.inform("first"); 
     if (field == button2) 
      Dialog.inform("second"); 
     if (field == button3) 
      Dialog.inform("third"); 
    } 

}