Comment changer dynamiquement la couleur de police du champ BlackBerry label?

j'ai un champ d'étiquette et trois boutons avec le nom de rouge, jaune, bleu. Si je clique sur le bouton rouge, alors la couleur de police du champ étiquette doit être changée en rouge; de la même façon, si je clique sur le bouton jaune, la couleur de la police doit changer en jaune; de la même façon, selon la couleur du bouton, la couleur de la police doit changer dans le champ Étiquette.

quelqu'un Peut-il me dire comment faire cela?

5
demandé sur Michael Donohue 2009-09-02 11:25:38
la source

1 ответов

La couleur de la police

dans LabelField est facilement maintenue par la mise en place de graphiques.setColor sur l'événement paint avant super.peinture:

    class FCLabelField extends LabelField {
        public FCLabelField(Object text, long style) {
            super(text, style);
        }

        private int mFontColor = -1;

        public void setFontColor(int fontColor) {
            mFontColor = fontColor;
        }

        protected void paint(Graphics graphics) {
            if (-1 != mFontColor)
                graphics.setColor(mFontColor);
            super.paint(graphics);
        }
    }

    class Scr extends MainScreen implements FieldChangeListener {
        FCLabelField mLabel;
        ButtonField mRedButton;
        ButtonField mGreenButton;
        ButtonField mBlueButton;

        public Scr() {
            mLabel = new FCLabelField("COLOR LABEL", 
                    FIELD_HCENTER);
            add(mLabel);
            mRedButton = new ButtonField("RED", 
                    ButtonField.CONSUME_CLICK|FIELD_HCENTER);
            mRedButton.setChangeListener(this);
            add(mRedButton);
            mGreenButton = new ButtonField("GREEN", 
                    ButtonField.CONSUME_CLICK|FIELD_HCENTER);
            mGreenButton.setChangeListener(this);
            add(mGreenButton);
            mBlueButton = new ButtonField("BLUE", 
                    ButtonField.CONSUME_CLICK|FIELD_HCENTER);
            mBlueButton.setChangeListener(this);
            add(mBlueButton);
        }

        public void fieldChanged(Field field, int context) {
            if (field == mRedButton) {
                mLabel.setFontColor(Color.RED);
            } else if (field == mGreenButton) {
                mLabel.setFontColor(Color.GREEN);
            } else if (field == mBlueButton) {
                mLabel.setFontColor(Color.BLUE);
            }
            invalidate();
        }
    }
13
répondu Maksym Gontar 2010-05-07 16:46:46
la source

Autres questions sur user-interface blackberry