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

ارجوا المساعدة في معاجة احداث list في مكتبة LWUIT

بدأه نمرالعدوان في 10 فبراير 2011 · 6 رد · 743 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوتي المشرفين والاعضاء في المنتدى

السلام عليكم ورحمة الله وبركاته

كنت قد قمت بكتابة كود في lcdui لل list وعرفت كيف استطيع تفعيل محتوياتها للدخول الى اشياء اخرى مثلاً ادخل الى فورم

ولكن عندما كتبت كود في LWUIT لم استطع تفعيل محتويات ال list كما اريد

الكود التالي يستطيع الدخول على اول فورم انا اخصصها فقط ولا يستطيع الدخول على الفورم الاخرى

ارجوا التعديل على الكود وشرح اين خطأي

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

import com.sun.lwuit.*; 
import com.sun.lwuit.events.ActionEvent; 
import com.sun.lwuit.events.ActionListener; 

import javax.microedition.lcdui.Image.*; 
import javax.microedition.midlet.MIDlet; 

public class DemoDialog extends MIDlet implements ActionListener 
{ 





public Form f1,f2,f3; 
private List l; 
private Button b,b1; 
int x; 

public void startApp() 
{ 

Display.init(this); 


f2=new Form("2"); 
f3=new Form("3"); 

f1=new Form("1"); 
b=new Button("back"); 
b1=new Button("back"); 



String[] items = { "Red", "Blue", "Green", "Yellow" }; 
l=new List(items); 








f1.addComponent(l); 
f1.getStyle().setBgColor(0xffffff); 
f3.addComponent(b); 
f2.addComponent(b1); 

l.addActionListener(this); 
l.getStyle().setBgColor(0xffffff); 



x=l.getSelectedIndex(); 
f1.show(); 
} 

public void pauseApp() 
{ 
} 
public void destroyApp(boolean unconditional) 
{ 
} 
//act on the command 
public void actionPerformed(ActionEvent ae) 
{ 
if(ae.getSource()==l) 

{ 
switch(x) 
{ 
case 0: 

{ f3.show(); 

break;} 
case 1: 
{ f3.show(); 
break;} 
} 

} 
else 
if(ae.getSource()==b||ae.getSource()==b1) 

f1.show(); 






} 


}
#2
نمرالعدوان كتب:

اخوتي المشرفين والاعضاء في المنتدى

السلام عليكم ورحمة الله وبركاته

كنت قد قمت بكتابة كود في lcdui لل list وعرفت كيف استطيع تفعيل محتوياتها للدخول الى اشياء اخرى مثلاً ادخل الى فورم

ولكن عندما كتبت كود في LWUIT لم استطع تفعيل محتويات ال list كما اريد

الكود التالي يستطيع الدخول على اول فورم انا اخصصها فقط ولا يستطيع الدخول على الفورم الاخرى

ارجوا التعديل على الكود وشرح اين خطأي

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

المشكله لديك فى import

import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;

//import javax.microedition.lcdui.Display;
//import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image.*;
//import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;

لاحظ ان هناك import قد تم عمل كومنت عليها

وهيا ما تسببت فى المشكله

لانك فى هذا الـ import

import com.sun.lwuit.*;

قد قومت باستدعاء كل الفئات داخل هذه الpackage

ومن ضمنها Display و Form وList

الذى يوجد مثلهم فى المكتبه الاساسيه للموبيل

//import javax.microedition.lcdui.Display;
//import javax.microedition.lcdui.Form;
//import javax.microedition.lcdui.List;

فانت كدا مستدعى هذه العناصر من مكتبتين مختلفتين

وهو يقوم بالتعامل على اخر import او بمعنى اصح الـ import الصريح الذى يكون كاملا

مثل هذا

import javax.microedition.lcdui.Form;

وليس كهذا

import javax.microedition.lcdui.*;

فبالتالى لا توجد الداله مثلا show فى الـ Form العاديه لكن توجد فى ال Form الخاصه بالـ LWUIT

اما بالنسبه للازار

فانك لم تحدد من هو المستمع الخاص بهم

b.addActionListener(this);
    	b1.addActionListener(this);

نصيحه قم بتسميه المتغيرات بأسماء تعبر عنهم

وليس بحروف وارقام

فانت الوحيد الذى ستفهم الكود

وان تركته لمده مثلا اسبوع هتلاقى نفسك مش فاهم منه حاجه

دى نصيحه علشان المشاريع الكبيره و علشان لو فيه خطأ تكتشفه بسرعه

هذا ما حدث

جرب واتمنى ان يكوون ذلك كل شىء بالتوفيق

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 10 فبراير 2011 في 12:56

Software Developer
Mahmoudkelany.com


 

#3

جزاك الله خير اخي محمد على ردك المتفاعل

لكن اخي غيرت في الامبورت ونفس النتيجة لا استطيع الدخول من ال list الى اشياء اخرى

اتمنى انت تجرب الكود الذي غيرته عندك وترى اين الخلل

import com.sun.lwuit.List;
import com.sun.lwuit.Form;
import com.sun.lwuit.Button;
import com.sun.lwuit.plaf.Style;

import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.Display;
import javax.microedition.lcdui.Image.*;
import javax.microedition.midlet.MIDlet;

public class DemoDialog extends MIDlet implements ActionListener
{





 public Form f1,f2,f3,f4;
  private List l;
  private Button b,b1;
  int x;

public void startApp()
{

Display.init(this);


f2=new Form("2");
f3=new Form("3");
f4=new Form("4");
f1=new Form("1");
b=new Button("back");
b.addActionListener(this);
b1=new Button("back");
b1.addActionListener(this);



String[] items = { "Red", "Blue", "Green", "Yellow" };
l=new List(items);








f1.addComponent(l);

f1.getStyle().setBgColor(0xfbe909);
f3.addComponent(b);
f2.addComponent(b1);

l.addActionListener(this);
l.getStyle().setBgColor(0xffffff);



 x=l.getSelectedIndex();
 f1.show();
}

public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
//act on the command
public void actionPerformed(ActionEvent ae)
{
    if(ae.getSource()==l)

    {
        switch(x)
        {
         case 0:
         {
          f2.show();
             break;
         }
            case 1:
            {  f3.show();
               break;
            }
            case 2:
            {  f4.show();
               break;
            }
            }

    }
    else
        if(ae.getSource()==b||ae.getSource()==b1)

            f1.show();






}


}

لاحظ اخي انه عند الضغط على اول انديكس في اليست يدخل على فورم وعند الرجوع والخول على فورة اخرى يدخل على نفس الفورم

ماذا اعمل

ارشدني لانه المشكلة هاي تعبتني وجزاك الله خير

#4

ها هو الكود الذى عدلته كما ذكرت لك

import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;

//import javax.microedition.lcdui.Display;
//import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image.*;
//import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;

public class DemoDialog extends MIDlet implements ActionListener {

	public Form f1, f2, f3;
	private List l;
	private Button b, b1;
	int x;

	public void startApp() {
    	Display.init(this);
    	f2 = new Form("2");
    	f3 = new Form("3");
    	f1 = new Form("1");
    	/////////////
    	b = new Button("back");
    	b1 = new Button("back");
    	//////////////////////
    	b.addActionListener(this);
    	b1.addActionListener(this);
    	///////////////////
    	String[] items = {"Red", "Blue", "Green", "Yellow"};
    	l = new List(items);
    	///////////
    	f1.addComponent(l);
    	f3.addComponent(b);
    	f2.addComponent(b1);
    	////////////
    	l.addActionListener(this);
    	///////////////////
    	f1.getStyle().setBgColor(0xffffff);
    	l.getStyle().setBgColor(0xffffff);
    	x = l.getSelectedIndex();
    	f1.show();
	}

	public void pauseApp() {
	}

	public void destroyApp(boolean unconditional) {
	}
//act on the command

	public void actionPerformed(ActionEvent ae) {
    	System.out.println(ae.getSource());
    	if (ae.getSource() == l) {
        	switch (x) {
            	case 0: {
                	f3.show();
                	break;
            	}
            	case 1: {
                	f3.show();
                	break;
            	}
        	}
    	} else if (ae.getSource() == b || ae.getSource() == b1) {
        	f1.show();
    	}
	}
}

Software Developer
Mahmoudkelany.com


 

#5

شكرا لك اخي على المتابعة

واعرف اني اتعبتك معاي لكن تحملني :P

اخي يبدو انك لم تفهم مشكلتي بعد

الكود لا يظهر فيه ايرور

والكود الذي ارسلته لب اخيرا نفسه الذي كتبته لك!!!!!

الخلل هنا

public void actionPerformed(ActionEvent ae) {

System.out.println(ae.getSource());

if (ae.getSource() == l) {

switch (x) {

case 0: {

f3.show();

break;

}

case 1: {

f3.show();

break;

}

}

} else if (ae.getSource() == b || ae.getSource() == b1) {

f1.show();

}

}

لاحظ انت جعلت عند الضغط على ثاني انديكس يفتح لك نفس الفورم

انا اريد ان يفتح فورم رقم 2

وذا ماعدلت على الكود وجعلته كالتالي

f (ae.getSource() == l) {

switch (x) {

case 0: {

f2.show();

break;

}

case 1: {

f3.show();

break;

}

فانه سوف يفتح فقط فورم 2 وعند الرجوع الى الليست والدخول على ثاني انديكس لايفتح فورم رقم 3 وانما يفتح فورم نفسه رقم 2 اي حالة case 1" لم تتفعل

شكرا لك وجزاك الله خير وجعله في ميزان حسناتك

ارجوا المتابعة من جميع المشرفين اذا امكن

#6

ضع هذا السطر

x = l.getSelectedIndex();

فى بدايه الداله

public void actionPerformed(ActionEvent ae) {

وجرب

Software Developer
Mahmoudkelany.com


 

#7

يااااااااااايي شكرا

بارك الله فيك

جزاك الله خير

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

إن شاء الله في المرة القادمة لن يتكرر هذا الخطأ

احسن الله اليك

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…