JTextArea und wait()

Of3N

Grünschnabel
Hallo,

ich versuche mich derzeit an einem Quiz.
Es wird eine Frage in die JTextArea geschrieben, dann kann man
dort die richtige Antwort reinschreiben.
Wenn die Antwort richtig ist soll es 5 Sekunen warten und dann eine neue Frage
stellen.

Ein BSP:

A: Was ist 2*2?
B: 4
A: Richtig B du hast mit der Antwort '4' gewonnen!
//Hier 5 Sekunden warten. Und dann die nächste Frage.
A: Wieviele Ecken hat ein Viereck?

lg Of3N
 
Mein Problem liegt darin, dass ich schon einiges mit wait() oder Thread.sleep()
probiert habe. Wenn man die richtige Antwort eintippt "friert" er 5 Sekunden ein und
es kommen dann :

B: 4
A: Richtig B du hast mit der Antwort '4' gewonnen!
A: Wieviele Ecken hat ein Viereck?

zur selben Zeit, was nicht sein soll.
 
Hi,
ich würde niemals einen Thread für X Sekunden anhalten, wenn dieser einen Event verarbeitet.In deinem Fall ja wohl eine keypressed oder keyreleased Methode.
Denn in der Zeit ist es für den Benutzer so, als wenn sich dein Programm aufgehängt hätte(wie Of3N bereits sagte)

Ich würde es so machen:

Textarea erstellen und mit Listnern versehen
Ein Stringarry erstellen, in dem die Fragen liegen und eins in dem die Antworten liegen
Eine int erstellen was besagt bei welcher Frage du bist.
Dann das erste Element aus dem Fagearrey in der Textarea erscheinen lassen

Dann würde ich bei jedem Aufruf des Keylisteners prüfen, ob die Antwort richtig eingegeben wurde.
Wenn ja, dann würde ich einen neuen Thread starten, der in seiner run-Methode
sleep(5000) aufruft und dann den int um 1 erhöht und dann den entsprechenden Eintrag aus dem fragearrey per setText
in das textfeld setzt

Wenn du das ganze Programm jemandem vorsetzt, würde ich unbedingt
2 Textfelder verwenden: Eins für die Eingabe, eins für die Ausgabe

Sollte irgenetwas unnütz oder überflüssig sein, dann lasst es mich wissen
 
Wo, wie meinst du 2 Textfelder?

Das mit den Frage und Antwort Array habe ich so wie du gesagt hast.

Aber ich kapier das gerade nicht mit den 2 Textfeldern.

lg Of3N
 
Er meint ein Textfeld wo du die Fragen anzeigst (am besten nicht editierbar machen) und ein Textfeld wo der User die Frage eingibst, dort fügst du dann auch alle Listener hinzu die du brauchst.
 
Ja, so könnte man es auch machen.
Will später aber das "Quiz" mit einer Datenbank verbinden, damit
mein Cousin und ich das gleichzeitig spielen können.
Deshalb finde ich, dass es mit einer JTextArea besser aussieht.
soll dann auch wie ein Art Chat funktionieren.
Aber am Anfang will ich mal, dass das Quiz läuft.

lg Of3N
 
Den an ICQ-Chatfenster. Ein Textfeld indem die Fragen gestellt werden und eins in dem du Antworten musst.
Sonst muss man doch immer erst den geschrieben Text rauslöschen und dann die Antwort eintragen.
das mir 5 Sekuden warten könnstest du so realisieren
Der code soll nur das Prinzip dastellen
Java:
public void keypressed(KeyEvent ev)
{
           if(isAntwortCorrect())
           {
                 new Thead()
                 {
                       public void run()
                       {
                            Thread.sleep(5000);
                             askNextQuestion();
                       }
                 }.start();
           }
}
XD ich hab vergessen wie man javacode formatiert
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück