الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن اضافة خلفية صوره الى ListCellRenderer

بدأه albakri في 5 سبتمبر 2010 · 18 رد · 1,004 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اساتذتي الافاضل حياكم الله جميعا

كيف يمكنني اضافة خلفية صورة الى ListCellRenderer ؟؟

وقد كنت قد سألت في موضوع الاخ محمد عرسان والموضوع اغلق قبل اجابتي /index.php?showtopic=228002&st=20

وها انا افتحه كموضوع جديد

#2

اذا كان سوالك زى الصوره دى

post-217802-005302900 1283697697_thumb.p

ما عليك هو ان تقوم بعمل كائن جديد من نوع Painter

وتعمل override للداله بتاعت الـ paint اللى فيه

وتشوف عاوز تعملها صوره ولا لون ولا ايه بالظبط

يعنى المثال بتاع الصوره معمول بهذه الطريقه

Painter painter = new Painter() {

            public void paint(Graphics g, Rectangle r) {
                g.setColor(0xFF0000);
                g.fillRect(list.getX(), list.getY(), list.getWidth(), list.getHeight());
            }
        };

وبعد ما اعمل الـ list هاجعل الخلفيه بتاعتها بالـ painter دا

list = new List();
        list.addItem("الاول");
        list.addItem("الثاني");
        list.addItem("الثالث");
        list.addItem("الرابع");
        list.addItem("الخامس");
        list.addItem("السادس");
        list.getSelectedStyle().setBgPainter(painter);
        frame.addComponent(list);      
        list.getParent().setRTL(true);

لكن ان كان شىء اخر فأرجوا التوضيح

المرفقات
MobilelistBg.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 5 سبتمبر 2010 في 17:52

Software Developer
Mahmoudkelany.com


 

#3

معلش انا بصيت على السوال فى الموضوع اللى انت حاطط اللينك بتاعه

لكن مش اخدت بالى انت عاوز تعملها صوره

المهم علشان تعملها صوره

هو بس فيه شويه تعديلات على الكود بتاع الاخ محمد

اللى هو بتاع الـ ListCellRenderer

 public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) {
        String text = (String) value;

        Label label = new Label(/*index + ": " + */text);
        label.setAlignment(Label.RIGHT);
        label.getStyle().setBgTransparency(0);
        try {
            if (isSelected) {
                label.getStyle().setFgColor(0xFF000);
                label.getStyle().setBgImage(Image.createImage("/bg_se.png"));
            } else {
                label.getStyle().setBgImage(Image.createImage("/bg_t.png"));
                label.getStyle().setFgColor(0x00000);
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return label;
    }

التعديلات اللى حصلت هنا

انى جعلت لكل خليه صوره فى الخلفيه

لكن هناك اختلاف بين خلفيه الخليه المختاره الان والخليه الغير مختاره

ولغيت

public Component getListFocusComponent(List list) {
        Label label = new Label();
//        label.getStyle().setBgColor(0x55555);
        return label;
    }

اللون الموجود على الخليه المحدده اللى هو كانه light color انا لغيت دا

وبقى الشكل النهائى هكذا

post-217802-001449700 1283701037_thumb.p

هل هذا ما تريده ام ماذا ؟؟؟

انا كل شويه افكر اقول يمكن عاوز كذا

واهو الواحد بيتعلم بردوا :lol: :lol: :lol:

وهذا هو التطبيق بعد التعديل عليه حتى يظهر بالشكل الذى امامك فالصوره

ListCellRenderMobileApplication.zip

المرفقات
mobileListBgImage.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 5 سبتمبر 2010 في 18:46

1

Software Developer
Mahmoudkelany.com


 

#5
محمد عرسان كتب:

@ Mahmoud Kelany

ممتاز

فنان :clapping: :clapping:

ربنا يخليك يا اخ محمد

شهاده اعتز بيها من اخ مثلك

انا بس كنت عاوز اساعد وكمان اتعلم بالمره

وانت عارف ان انا عاوز اتعلم الـ LWUIT

وانا طبعت الكتاب امبارح وان شاء الله هابدا فيه

بكرا على ما أعمل له جلاد

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 5 سبتمبر 2010 في 22:26

Software Developer
Mahmoudkelany.com


 

#6

يا اخوان عندما وضع محمد المثال في المشاركه السابقه كان من أجل التبسيط والشرح..لذا وجب التنبيه الى أن هذه الطريقه غير مجديه بتاتا على الأجهزه لأنك تقوم بعمل Label في كل مره يتم استدعاء ال function وهو ما تم انشاء ال ListCellRenderer من أجل تفاديه.

لمزيد من المعلومات

ربما أشحرها بالتفصيل اذا توفر لي الوقت..أو يمكن محمد يريحني ويرشحها هو :wink:

#7
مهدي حجازي كتب:

يا اخوان عندما وضع محمد المثال في المشاركه السابقه كان من أجل التبسيط والشرح..لذا وجب التنبيه الى أن هذه الطريقه غير مجديه بتاتا على الأجهزه لأنك تقوم بعمل Label في كل مره يتم استدعاء ال function وهو ما تم انشاء ال ListCellRenderer من أجل تفاديه.

لمزيد من المعلومات

ربما أشحرها بالتفصيل اذا توفر لي الوقت..أو يمكن محمد يريحني ويرشحها هو :wink:

طيب فين الطريقه الاجدى من ذلك ؟

لا طبعا اكيد انت اللى هتشرحها

علشان حاجتين

انت اللى اتكلمت عنها :lol: :lol:

فبالتالى اتدبست فى انك هتشرحها

وكمان الاخ محمد مشغول شويه

ههههههههه

منتظرينك ان شاء الله :)

لانى بحب الطرق التى لا تكلف والمتبعه للقواعد

Software Developer
Mahmoudkelany.com


 

#8
مهدي حجازي كتب:

يا اخوان عندما وضع محمد المثال في المشاركه السابقه كان من أجل التبسيط والشرح..لذا وجب التنبيه الى أن هذه الطريقه غير مجديه بتاتا على الأجهزه لأنك تقوم بعمل Label في كل مره يتم استدعاء ال function وهو ما تم انشاء ال ListCellRenderer من أجل تفاديه.

لمزيد من المعلومات

ربما أشحرها بالتفصيل اذا توفر لي الوقت..أو يمكن محمد يريحني ويرشحها هو :wink:

الله يجزيك الخير

بصراحة انا بحب طريقة شرحك :lol: :lol:

فا انت اشرحها لاستفيد ايضا، ولا بدك تضيع الاخوان بشرحي :lol: :lol:

#9

:clapping: للجميع

جميل جدا اخ محمد انا لا اقصد الطريقة الثانية

اقتباس
معلش انا بصيت على السوال فى الموضوع اللى انت حاطط اللينك بتاعه

لكن مش اخدت بالى انت عاوز تعملها صوره

المهم علشان تعملها صوره

هو بس فيه شويه تعديلات على الكود بتاع الاخ محمد

اللى هو بتاع الـ ListCellRenderer

ولا الاولى

اقتباس
ما عليك هو ان تقوم بعمل كائن جديد من نوع Painter

وتعمل override للداله بتاعت الـ paint اللى فيه

وتشوف عاوز تعملها صوره ولا لون ولا ايه بالظبط

يعنى المثال بتاع الصوره معمول بهذه الطريقه

وبعد ما اعمل الـ list هاجعل الخلفيه بتاعتها بالـ painter دا

list = new List();

list.addItem("الاول");

list.addItem("الثاني");

list.addItem("الثالث");

list.addItem("الرابع");

list.addItem("الخامس");

list.addItem("السادس");

list.getSelectedStyle().setBgPainter(painter);

frame.addComponent(list);

list.getParent().setRTL(true);

لكن ان كان شىء اخر فأرجوا التوضيح

انا اقصد ال list ككل تكون على صورة اي ال lable ليس له دخل بمعنى اخر لل form الذي بعد الlist توجد صورة او لون هل وضحت الفكرة يا اخ محمد :P

ولكنني توصلت للحل وكان سهلا :blush: وهذا كود اضافة الصورة

    try {
        mImage =Image.createImage("/dd.png");

          } catch (IOException e) {

            e.printStackTrace();
        }
         frame.getStyle().setBgImage(mImage);

اما اللون

frame.getStyle().setBgColor(0xFF0000);

ولا تنسوا الاعلان

private Image mImage;

وكذللك اضافة

import com.sun.lwuit.Image;

لكن ما عملته جميل جدا وايضا يضيف الى معلوماتنا ونقول جميل منك يا اخ محمد واجمل من الاخ مهدي اذا شرح الطريقة التي يقول عنها نحن نطمع بالكثير لنتعلم :lol:

شكرا لكم جميعا

تم تعديل هذه المشاركة بواسطة albakri في 6 سبتمبر 2010 في 11:02

#10

انت فى سوال قولت

اقتباس
كيف يمكنني اضافة خلفية صورة الى ListCellRenderer ؟؟

لكن السوال يكون كيف اعمل للـ form خليفه او صوره ؟

لكن حصل خير

لولا السوال هذا ما كنت فكرت فيه :lol: :lol: :lol:

Software Developer
Mahmoudkelany.com


 

#11
محمد عرسان كتب:

الله يجزيك الخير

بصراحة انا بحب طريقة شرحك :lol: :lol:

فا انت اشرحها لاستفيد ايضا، ولا بدك تضيع الاخوان بشرحي :lol: :lol:

ماشي يا حج محمد يعني الا ما لبستني الموضوع..عموما الطريقه هي الطريقه الثانيه التي ذكرتها في الرابط أعلاه وما كنت سأقوم به هو شرحها فقط. لذلك عليكم بالصبر وحتى ذلك الحين يمكن لمن يحتاج ال ListCellRenderer ان يستخدمها من الرابط المذكور

تم تعديل هذه المشاركة بواسطة مهدي حجازي في 8 سبتمبر 2010 في 21:54

#12

رائع استفدت من الموضوع بحق

ولكن المكتبة لم يتعرف عليها المحاكي wirless toolkit

فيظهر هذا الخطأ

.java:7: package com.sun.lwuit does not exist

import com.sun.lwuit.Image;

كما لم يتم التعرف على frame

ارجو الافاده

#13

جاوبت على حضرتك فالموضووع الاخر

وماذا تقصد بالـ Frame

لا يوجد Frame فالمكتبه

Software Developer
Mahmoudkelany.com


 

#14

شكرا لك

frame اكتشفت انه كائن من النوع form

لكن كيف اضيف صورة مع كل خيار؟

#15
pure love كتب:

شكرا لك

frame اكتشفت انه كائن من النوع form

لكن كيف اضيف صورة مع كل خيار؟

صوره ايه ؟

ممكن توضحى؟؟؟؟

Software Developer
Mahmoudkelany.com


 

#16
Mahmoud Kelany كتب:

صوره ايه ؟

ممكن توضحى؟؟؟؟

أقصد أن الليسته تحتوي على صوره مجاوره لكل خيار

#17
pure love كتب:

أقصد أن الليسته تحتوي على صوره مجاوره لكل خيار

اتفضلى او اتفضل

بصراحه انا مش عارف انا بتكلم مع ولد او بنت

المهم

دا المطلوب

post-217802-076544300 1292517492_thumb.p

ودا المشروع

ListCellRenderMobileApplication.zip

بالتوفيق :)

المرفقات
ddd.png

Software Developer
Mahmoudkelany.com


 

#18

شكرا لك وفقك الله

سأرى ما المشكله لدي

#19
pure love كتب:

شكرا لك وفقك الله

سأرى ما المشكله لدي

العفو تحت امرك

ممكن بس لو فيه سوال تانى تعرضه فى موضوع مستقل

وفقا لقوانين المنتدى

بالتوفيق :)

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة