2011-06-10 103 views
2

我在我的设计中使用了较小的按钮,我想要一个带有较小按钮的 ChoiceField。按钮技术不像我期望的ChoiceField那样工作。我能够改变大小,但按钮呈现不合格。如何更改ChoiceField中按钮的大小?BlackBerry ChoiceField按钮尺寸

ChoiceField choiceMode = 
    new ChoiceField(
     searchModel.getPickerLabel(SearchOptions.PICKER_MODE),modes.length,0) { 
      public Object getChoice(int index) throws IllegalArgumentException { 
       return modes[index]; 
      } 

      public int getPreferredHeight() { 
       return 40; 
      } 

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

回答

0

我使用这个类::

public class JOChoiceField extends ObjectChoiceField { 
     int setWidth; 
     int setHeight; 

     public JOChoiceField (String text, Object[] choices, long setStyle, int initIndex, int pSetWidth, int pSetHeight) { 
      super(text, choices, initIndex, setStyle); 
      setWidth = pSetWidth; 
      setHeight = pSetHeight; 
     }   
     public int getPreferredWidth() { 
      return setWidth; 
     } 
     public int getPreferredHeight() { 
      return setHeight; 
     }   
     public void getFocusRect(XYRect rect) {   
      rect.set(getFont().getAdvance(getLabel()), 0, setWidth, setHeight);  
     }  
     protected void layout(int width, int height) { 
      int useWidth; 
      int useHeight; 

      useWidth = getPreferredWidth(); 
      useHeight = getPreferredHeight(); 

      setExtent(setWidth, setHeight); 
      super.layout(useWidth, useHeight);   
     }     
}; 

- -

MyCustomChoiceField= new JOCChoiceField("",MyArrayofItems,ObjectChoiceField.FIELD_LEFT|ObjectChoiceField.FOCUSABLE,0,100,50);   
MyCustomChoiceField.setChangeListener(this);     
MyCustomChoiceField.setFont(Font.getDefault().derive(Font.BOLD,6,2));  
add(MyCustomChoiceField);