Thread starten,dabei integer bis 5000 Zählen,dann nochmal?

wildsoul

Mitglied
Habe ein Problem, ich hoffe ihr könnt mir dabei helfen!
Bei Start es Programmes soll ein Thread werden. Dieser zählt einen integer iCounter" von 1 bis 5000 hoch. Bei Erreichen von 5000 wird wieder bei 1 angefangen.
Wenn der Benutzer eine Cursor-Taste drückt, soll der aktuelle Wert von iCounter sowie ein Text, der die gedrückte Taste bezeichnet, auf der Konsole ausgegeben werden.

bisjetzt habe ich folgendes Programmiert:

Code:
/*author wildsoul
 * 
 */

import javax.swing.JOptionPane;

public class Aufgabe6 extends Thread {
	public void run() {
		String string;
		int ausgabe = 0;

		int iCount = 0;
		while (iCount <= 5000) {
			iCount += iCount;
			ausgabe = iCount;
			string = JOptionPane.showInputDialog("Bitte Zeichen eingeben:");
			if (string.equals("a")) {
				System.out.println(string);
				System.out.println((char) ausgabe);
			}
		}

	}

	public static void main(String[] args) throws InterruptedException {
		//String Zeichen;
		Thread t1 = new Thread();
		t1.start();

	}

}

es klappt irgendwie nicht, dass ich eine eingabe durchführen kann bei run methode! und wie mache ich dass er langsam zählt!?
 
Hallo,

da passt so einiges nicht zusammen. Du möchtest das das Programm in der Konsole etwas ausgibt, hast aber ein JOptionPane-Dialog auch mit integriert.

Du hast den Dialog mit in die Schleife genommen in der du bis 5000 hochzählst, damit wird wahrscheinlich bei jedem Durchgang ein neuer Dialog geöffnet.

Soll es eine Konsolen- oder eine Guiapplikation werden? Oder eine Kombinierte?

Das langsamer zählen erreicht man durch das Schlafenlegen des Threads. Füge einfach dieses Snippet bei dir in die Schleife ein:
http://javaalmanac.com/egs/java.lang/Sleep.html


Vg Erdal
 
Zuletzt bearbeitet:
Hallo,

schau mal hier:
Java:
import java.io.*;

public class ThreadExample extends Thread {

	private static int iCount = 1;

	private static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

	public static void main(String[] args) {
		new ThreadExample().start();
		try {
			String text = in.readLine();
			System.out.println(text + " " + iCount);
			System.exit(0);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void run() {
		while (true) {
			try {
				if (iCount == 5000)
					iCount = 1;
				else
					iCount++;
				Thread.sleep(100l);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}


Vg Erdal
 
hey vielen vielen dank bruder, war ja ganz leicht eigentlich, müsste nur bisschen logischer nachdenken müssen, oh man! naja gut, danke !;)
 
Zurück