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 : Sélectionner tout - Visualiser dans une fenêtre à part
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