بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
اللهم يا معلم آدم علمنا ويا مفهم سليمان فهمنا ، سبحانك لا علم لنا إلا ما علمتنا إنك أنت علام الغيوب .
المشروع التالي يشرح كيفية نقل التركيز بين مجموعة من الكائنات وهي في مثالنا هذا 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
وصلى الله وسلم على نبينا محمد وعلى آله وصحبه وسلم ، والحمد لله رب العالمين .
