المثال التالي ينقل التركيز بين مجموعة من JTextField باستخدام الزر TAB، مع امكانية الاضافة للمكونات ؟
أولا : أنشأ ال class التالي : وهو الذي يقوم بنقل التركيز بين المكونات بعد تمرير مصفوفة من نوع LinkedList تحتوي على هذه المكونات وهي من نوع JTextField في مثالي هذا .
package rohaili;
import java.awt.Component;
import java.awt.Container;
import java.util.LinkedList;
import javax.swing.JTextField;
public class focustraversalpolicy extends java.awt.FocusTraversalPolicy {
LinkedList<JTextField> linkedlist;
public focustraversalpolicy (LinkedList<JTextField> linkedlist) {
this.linkedlist = linkedlist;
}
@Override
public Component getComponentAfter (Container FocusCycleRoot, Component comp) {
int idx = linkedlist.indexOf(comp);
return linkedlist.get((idx + 1)% linkedlist.size());
}
@Override
public Component getComponentBefore (Container FocusCycleRoot, Component comp) {
int idx = linkedlist.indexOf(comp);
return linkedlist.get(idx - 1);
}
@Override
public Component getDefaultComponent (Container FocusCycleRoot) {
return linkedlist.getFirst();
}
@Override
public Component getFirstComponent (Container FocusCycleRoot) {
return linkedlist.getFirst();
}
@Override
public Component getLastComponent (Container FocusCycleRoot) {
return linkedlist.getLast();
}
}ثانيا : أضف الأوامر التالية الى ال class الرئيس في مشروعك :
السطر الرابع : ينشأ مصفوفة تسمى focuslist من النوع LinkedList ويحدد نوع المكونات التي سوف تحتويها وهي JTextField ، يمكنك أن تختار النوع الذي تريده .
السطر الخامس : ينشأ ftp من نوع focustraversalpolicy (ال class الذي أنشاناه سابقا) ويمرر له المصفوفة focuslist .
import java.util.LinkedList; import javax.swing.JTextField; private LinkedList<JTextField> focuslist; private focustraversalpolicy ftp; focuslist = new LinkedList<JTextField>(); ftp = new focustraversalpolicy(focuslist);
الأوامر التالية لإضافة المكونات الى المصفوفة ، الأول يضيف مكون الى آخر المصفوفة ، والثاني يضيف مكون عند فهرس معين .
public void addtoorder(JTextField comp){
focuslist.add(comp);
}
public void addtoorder(int index, JTextField comp){
focuslist.add(index, comp);
}أتمنى للجميع التوفيق .

