Размер кнопки BlackBerry ChoiceField - PullRequest
2 голосов
/ 10 июня 2011

Я использую меньшие кнопки в своем дизайне, и я хочу ChoiceField с меньшей кнопкой.Техника кнопки не работает, как я ожидаю на ChoiceField.Я могу изменить размер, но кнопка отображается неправильно.Как изменить размер кнопки в 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);
            }
        };

1 Ответ

0 голосов
/ 14 июля 2011

Я использую этот класс ::

    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);
...