سؤال

أريد أن أضع العديد من المعاملات مع نص محاذاة على اليمين على الشاشة الرئيسية مع خلفية أليس أزرق. لسوء الحظ، لا يمكنني أن أبدو لمعرفة كيفية جعل ذلك يحدث.

أفضل ما يمكنني فعله هو تعيين الخلفية الخاصة بي إلى color.aliceBlue على الشاشة الرئيسية ووضع labelfients على الشاشة (أيضا مع خلفية أليس أليس).

    public void paint(Graphics graphics) {
        graphics.setBackgroundColor(Color.ALICEBLUE);
        graphics.clear();
        super.paint(graphics);  
    }

و...

    LabelField display = new LabelField("", LabelField.FIELD_RIGHT){
        public void paint(Graphics graphics) {
            graphics.setColor(Color.DIMGRAY);
            graphics.setBackgroundColor(Color.ALICEBLUE);
            graphics.clear();
            super.paint(graphics);  
        }
    };

تمنحني روتين الطلاء الرئيسي للثناء الخلفية الأزرق أليس، ولكن تجاوز إجراءات الطلاء "الأزرق" لا يبدو أنها كافية. والنتيجة هي صف أبيض، مع خلفية أزرق أليس خلف نص الملصق فقط. إضافة USE_ALL_WIDTH يصحح مشكلة الخلفية، لكن لا يمكنني محاذاة اليمين USE_ALL_WIDTH.

لا أحد يعرف حلا لهذه؟

هل كانت مفيدة؟

المحلول

في الإصدارات <= 4.5 يمكنك إنشاء VerticalFieldManager مع الطلاء الجهير ():

class BGManager extends VerticalFieldManager {
    public BGManager() {
        super(USE_ALL_HEIGHT|USE_ALL_WIDTH);
    }
    public void paint(Graphics graphics)
    {
        graphics.setBackgroundColor(Color.DARKRED);
        graphics.clear();
        super.paint(graphics);
    }
}

ثم استخدمه على شاشة Youre، إضافة Labelfield بسيطة إلى ذلك:

class Scr extends MainScreen {
    BGManager manager = new BGManager();
    public Scr() {
        super();
        add(manager);       
        manager.add(new LabelField("Hello!", FIELD_RIGHT));
        manager.add(new LabelField("This is a test", FIELD_RIGHT));
    }
}

في الإصدارات> = 4.6 يمكنك استخدام طريقة SETBackGroud () FOR

class Scr extends MainScreen {  
    public Scr() {
        super();
        VerticalFieldManager manager = 
            (VerticalFieldManager)getMainManager();
        manager.setBackground(
            BackgroundFactory.createSolidBackground(
                Color.DARKRED));        
        manager.add(new LabelField("Hello!", FIELD_RIGHT));
        manager.add(new LabelField("This is a test", FIELD_RIGHT));
    }
}

يرى BB KB DB-00131 - كيفية - تغيير لون الخلفية لشاشة

نصائح أخرى

يستخدم

new LabelField("",LabelField.USE_ALL_WIDTH | DrawStyle.RIGHT);

دون تجاوز طريقة الطلاء ل Labelfield.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top