M
Manuela
Gast
Hallo
ich habe auf einem Panel verschiedene JComponente, JTextfelder ,JComboboxen usw...
und ich habe mit dieser Art meinen Focus auf die einzelnen Componente gesetzt, jetzt kommt das Problem
http://www.java-forum.org/de/viewto...licy+getfocustraversal+final+jcomponent+order
ich starte mit einem Textfeld und wenn ich an der 7 stelle an eine JComboBox komme springt der Cursor wieder an
die erste stelle ??? warum er das macht habe ich keine Ahnung.
Ich habe bei mehrern Panels das gleiche gemacht und dort funktioniert das ohne Probleme.
Also wo kann das problem sein.
Danke Manuela
ich habe auf einem Panel verschiedene JComponente, JTextfelder ,JComboboxen usw...
und ich habe mit dieser Art meinen Focus auf die einzelnen Componente gesetzt, jetzt kommt das Problem
http://www.java-forum.org/de/viewto...licy+getfocustraversal+final+jcomponent+order
ich starte mit einem Textfeld und wenn ich an der 7 stelle an eine JComboBox komme springt der Cursor wieder an
die erste stelle ??? warum er das macht habe ich keine Ahnung.
Code:
FocusTraversalPolicy policy = MyFocusTraversalPolicy.getFocusTraversal(new JComponent[]{textfield1,textfield2, textfield3,textfield4,textfield5
,textfield6,jComboBox1,textfield7,textfield8,textfield9,...})
setFocusTraversalPolicy(policy);
setFocusCycleRoot(true);
Code:
public class MyFocusTraversalPolicy {
public static FocusTraversalPolicy getFocusTraversal(final JComponent order[])
{
FocusTraversalPolicy policy = new FocusTraversalPolicy()
{
java.util.List list = java.util.Arrays.asList(order);
public java.awt.Component getFirstComponent(java.awt.Container
focusCycleRoot)
{
return order[0];
}
public java.awt.Component getLastComponent(java.awt.Container
focusCycleRoot)
{
return order[order.length - 1];
}
public java.awt.Component getComponentAfter(java.awt.Container
focusCycleRoot,
java.awt.Component aComponent)
{
int index = list.indexOf(aComponent);
return order[ (index + 1) % order.length];
}
public java.awt.Component getComponentBefore(java.awt.Container
focusCycleRoot,
java.awt.Component aComponent)
{
int index = list.indexOf(aComponent);
return order[ (index - 1 + order.length) % order.length];
}
public java.awt.Component getDefaultComponent(java.awt.Container
focusCycleRoot)
{
return order[0];
}
public java.awt.Component getInitialComponent(java.awt.Window window)
{
return order[0];
}
};
return policy;
}
}
Ich habe bei mehrern Panels das gleiche gemacht und dort funktioniert das ohne Probleme.
Also wo kann das problem sein.
Danke Manuela