user-interface - 如何动态更改黑莓标签字段的字体颜色?

标签 user-interface blackberry

我有一个标签字段和三个按钮,名称分别为红色、黄色、蓝色。如果我单击红色按钮,则标签字段字体颜色应更改为红色;同样,如果我单击黄色按钮,则字体颜色应更改为黄色;同样根据按钮颜色,标签字段中的字体颜色应更改。

谁能告诉我如何做到这一点?

最佳答案

通过在 super.paint 之前在绘制事件上设置 graphics.setColor ,可以轻松维护 LabelField 中的字体颜色:

    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();
        }
    }

关于user-interface - 如何动态更改黑莓标签字段的字体颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366273/

相关文章:

Java Swing getSize() 返回不准确的值?

java - 将自定义组件添加到 NetBeans GUI 构建器! (世界风)

Java GUI 外观变化

eclipse - 没有 ToolBarManager 的黑莓标签栏

blackberry - 存储在我的 PersistentObject 中的数据会在 Blackberry 中的应用程序更新时保留吗?

blackberry - 我需要在 BlackBerry Webworks 应用程序中嵌入 > 4MB 的内容文件(适用于 BlackBerry 6/7)。我有什么选择?

java - 如何将参数从 php 发送到 blackberry/Java 移动应用程序

java - unicode 到 URI 的百分比编码

asp.net - 在 asp.net 中显示用户消息的好方法的建议?

java - 如何替换操作栏中的溢出和抽屉导航?