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 :
Voici la boucle sur les ports (affichage ) :
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()) ); } }
La méthode displayMessage :
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 ); }
En fait, je voudrais que
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(); } }
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.
Partager