[Débutant][JFormattedTextField] Tread séparé pour selectAll
Bonjour
toujours dans l'étude de la page http://java.sun.com/docs/books/tutor...textfield.html
et en particulier du programme http://java.sun.com/docs/books/tutor...InputDemo.java
je trouve une partie du code suivant
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
| /**
* Called when one of the fields gets the focus so that
* we can select the focused field.
*/
public void focusGained(FocusEvent e) {
Component c = e.getComponent();
if (c instanceof JFormattedTextField) {
selectItLater(c);
} else if (c instanceof JTextField) {
((JTextField)c).selectAll();
}
}
//Workaround for formatted text field focus side effects.
protected void selectItLater(Component c) {
if (c instanceof JFormattedTextField) {
final JFormattedTextField ftf = (JFormattedTextField)c;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ftf.selectAll();
}
});
}
} |
Sur chaque composant il a été enrigistré un addFocusListener(this) donc lorsque l'un de ces composants reçoit le focus la méthode
focusGained(FocusEvent e) est appelée pour permettre de sélecter (mettre en surbrillance ) le texte que contient ce composant
Ma question: Pourqoi avoir un tread séparé ( dans la méthode selectItLater(Component c) pour faire cette instruction lorsqu'il s'agit d'un JFormattedTextField
C'est juste pour comprendre le pourqoi de la chose
Merci