freezer l'interface en attendant une réponse
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:
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:
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:
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.