2

我在我的设计中使用了较小的按钮,我想要一个带有较小按钮的 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);
            }
        };
4

1 回答 1

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);
于 2011-07-14T17:45:23.167 回答