Appeler l'événement manuellement pour les composants SWING
Bonjour
je voulais appeler pour des raisons de test unitaires l'evenement FocusEvent du composant Swing JTextField , j'aurais du créer une autre classe qui extends JtextField et redefinir la méthode du component processFocusEvent ça a marché , Est ce qu'il y a pa un autre moyen pour appeler la méthode processEvent qui est une méthode de la classe Component pour la classe JComponent car l'objet testé est du type JTextField et donc je dois appeler cette méthode ProcessEvent sur ce type d'objet.
Merci d'avantage
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public class JTextField4Test extends JTextField {
@Override
protected void processEvent(AWTEvent e) {
// TODO Auto-generated method stub
super.processEvent(e);
}
@Override
public boolean postEvent(Event e) {
// TODO Auto-generated method stub
return super.postEvent(e);
}
@Override
protected void processFocusEvent(FocusEvent e) {
super.processFocusEvent(e);
}
public void invokeFocusEvent(FocusEvent e){
processFocusEvent(e);
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| JTextField4Test jtextfield=new JTextField4Test();
jtextfield.addFocusListener(new FocusListener(){
@Override
public void focusGained(FocusEvent arg0) {
System.out.println("The event of the JTextField is invoked");
}
@Override
public void focusLost(FocusEvent arg0) {
System.out.println("The event of the JTextField is invoked");
}
});
FocusEvent e=new FocusEvent(jtextfield,FocusEvent.FOCUS_GAINED);
jtextfield.invokeFocusEvent(e); |