J'ai crée deux classes en Java ; la première classe intitulé Unthread étend de la classe Thread et la deuxième un main tout simplement .
Je veux que l'utilisateur fait entrer à chaque tentative (il ya 5 tentatives) un mot pour une contrainte de temps de 8 sec et si le mot est correct la boucle while est interrompue sinon i=i+1 ; ( je fais le test du mot entré avec au autre mot ="akaichi")
mon problème est : en faisant l'exécution à chaque tentative si j'entre rien et le temps est écoulé le programme ne passe pas a la ième tentative et il faut que je tape quelque chose au clavier pour qu'il passe à la tentative suivante .

Je veux simplement que si aucun mot est entré et si le temps est écoulé il passe tout seul à la tentative suivante .

Voilà la classe Unthread ;
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
public class Unthread extends Thread{
 
	 public void run() {
 
		 long time=0L;
		 while (! isInterrupted())
			{
				time = System.currentTimeMillis();
				try
				{
					// cinq secondes d'attente
					Thread.sleep(8000);
				}
				catch (InterruptedException e)
				{
					//System.out.println("saisir votre mot");
					// Activation du flag d'interruption
					Thread.currentThread().interrupt();
					break;
				}
				System.out.println("temps ecoulé");
				break;
}}}
Voilà la classe main :
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
25
26
27
28
29
30
import java.util.Scanner;
 
public class Main {
 
	  public static void main(String[] args) throws Exception{
		  Lire l =new Lire ();
		 String tentative;
		 int i=1;
		 Boolean stop =false;
		 while (i<=5 && stop==false){
		 System.out.println("la valeur de i est "+" " +i);
		  Unthread th=new Unthread();
		  th.start();
		  System.out.println("Saisir votre mot !");
		// Attente d'une interruption manuelle  //System.in.read();
	    tentative=l.chaine();//saisie 
	    if (l.TestChaine(tentative))
	    {stop=true;
	    break;}
		th.interrupt();
		//
 
		// Attente de la fin du thread
		th.join();
 
	 	if (i<5 )
	 	System.out.println("Le mot est incorrect ! passons a la "+" "+(i+1)+" "+" ème tentative");
		i=i+1;
 
		 }
Merci pour votre aide