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

شرح : نقل التركيز بين العناصر في الحاوية باستخدام الدالة getComponentZOrder()

بدأه rohaili في 5 فبراير 2010 · 0 رد · 843 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1

بســم الله الـرحمــن الرحيــم

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

اللهم يا معلم آدم علمنا ويا مفهم سليمان فهمنا ، سبحانك لا علم لنا إلا ما علمتنا إنك أنت علام الغيوب .

المشروع التالي يشرح كيفية نقل التركيز بين مجموعة من الكائنات وهي في مثالنا هذا jtextfield ضمن حاوية وهي في مثالنا هذا jpanel .

باستخدام netbeans أنشأت مشروعا جديدا وأضفت له شريط أدوات ووضعت فيه زري أمر أحدهما ينقل التركيز لليمين والآخر لليسار .

في اللوحة الرئيسة mainPanel أضفت ثلاث مربعات نص .

ثم أضفت الأمران التاليان في بداية تنفيذ البرنامج


//نحفظ مربع النص ذو الفهرس 1 في المتغير
//focus
//ونعطيه التركيز
focus = ( JTextField ) mainPanel.getComponent(1);
focus.requestFocusInWindow();

ثم أضفت الدالتان التاليتان اللتان تقومان بنقل التركيز بين العناصر


@Action
public void right() {
//الترتيب
//zorder
//هو فهرس العنصر
//مثال : حاوية تحتوي على خمسة عناصر فيكون الترتيب
//zorder
//للعنصر الرابع هو 3

//احضار الترتيب
//zorder
//للمربع الذي يملك التركيز
int i = mainPanel.getComponentZOrder( focus );

//فهرس العنصر التالي هو i + 1
//استخدمنا عملية % باقي القسمة على عدد عناصر الحاوية لكي ينتقل التركيز عند الوصول لآخر عنصر إلى العنصر الأول
int n = ( i + 1 ) % mainPanel.getComponentCount();

focus = ( JTextField ) mainPanel.getComponent(n);
focus.requestFocusInWindow();
}

@Action
public void left() {
int i = mainPanel.getComponentZOrder( focus );

//الأمر التالي مختلف قليلا عن سابقه لأننا نريد الانتقال من العنصر الأول إلى الأخير عند الوصول للعنصر الأول
int n = ( i - 1 + mainPanel.getComponentCount() ) % mainPanel.getComponentCount();

focus = ( JTextField ) mainPanel.getComponent(n);
focus.requestFocusInWindow();
}

المشروع كاملا في المرفقات .

الموضوع التالي يشرح كيفية نقل التركيز باستخدام الزر tab

/index.php?showtopic=195855&st=0&p=975208&fromsearch=1entry975208

وصلى الله وسلم على نبينا محمد وعلى آله وصحبه وسلم ، والحمد لله رب العالمين .

FocusOwnerByZOrder.zip

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 8 فبراير 2010 في 03:18 — السبب: التعديل على التعليق للتقليل من مشكلة الجم

1

300_130.gif

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