Bonjour,

Je suis entrain de faire une petite appli qui scanne les ports séries, et en fonction des ports trouvés, demande à l'utilisateur d'affecter les ports trouvés au devices connectés, par ex :

-> com4 : scanner

-> com6 : imprimantes

Je me demande comment "freeezer" l'interface en attendant une réponse de l'utilisateur.

Boucle de découverte des ports :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
static void listPorts()
{
        java.util.Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers();
        while ( portEnum.hasMoreElements() ) 
        {
            CommPortIdentifier portIdentifier = portEnum.nextElement();
            list.add( portIdentifier );
            //System.out.println( portIdentifier.getName()  +  " - " +  getPortTypeName( portIdentifier.getPortType()) );
        }        
}
Voici la boucle sur les ports (affichage ) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
for ( int count = 0; count < list.size() ; count++ )
{
	CommPortIdentifier portIdentifier = list.get( count );
	String messageToDisplay = "Found Port : "+portIdentifier.getName();
	_window.displayMessage( messageToDisplay );
}
La méthode displayMessage :

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
 
public void displayMessage( final String messageToDisplay )
{
	try {
		SwingUtilities.invokeAndWait(
			new Runnable(){
				public void run(){
					get_mainTxtarea().setText("");
					get_mainTxtarea().append( messageToDisplay+"\n" );
				}
			}
		);
	} catch (InterruptedException e) {
		e.printStackTrace();
	} catch (InvocationTargetException e) {
		e.printStackTrace();
	}
}
En fait, je voudrais que

1/ découverte d'un port, affichage du nom à coté d'une JCombobox
2/ focus utilisateur, attente de réponse : selection d'un device via JCombobox
3/ On re-entre dans la boucle des ports.

Parceque là, je découvre tous les ports, et ensuite seulement j'interagit avec l'utilisateur.