Auswahlmöglichkeit bei Quiz beschränken

Beatzz

Mitglied
Hallo,

Ich programmieren momentan ein simples Quiz spiel mit Eclipse.
Dabei gibt es eine Frage und dann kommt auch direkt richtig oder falsch und man kann den button zum nächsten Fenster klicken.

Die frage ist nun, wie kann ich sagen das wenn eine antwort geklickt wird (gibt 4), dass man nicht noch die weiteren 3 anklicken kann?

gibt es da irgendwie einen remove action performed befehl oder remove eventhandler?

Vielen dank schonmal für die hilfe
 
Ja man kann einen ActionListener auch wieder entfernen.
Du könntest auch einfach die Antworten disablen oder ein Flag einbaut das ein nochmaliges klicken ignoriert sobald eine Antwort gegeben wurde.
 
hab grad versucht mit
Code:
disableEvents(actionPerformed(ActionEvent e));
aber da bekomme ich fehler.. das ich dupliziere..
Code:
public void actionPerformed(ActionEvent e)
ist mein event handler.. davon hab ich 4 stück. Für die 4 Fragen.
 
hab grad versucht mit
Code:
disableEvents(actionPerformed(ActionEvent e));
aber da bekomme ich fehler.. das ich dupliziere..
Bei sowas ist es immer gut die ganze Fehlermeldung zu kopieren.

Mir ist keine Methode "disableEvents" bekannt, außerdem hat "actionPerformed" keinen Rückgabewert, was soll da genau übergeben werden?

Code:
public void actionPerformed(ActionEvent e)
ist mein event handler.. davon hab ich 4 stück. Für die 4 Fragen.

"actionPerformed" ist nur eine Methode, um ein Event zu behandeln. Der EventHandler ist die Klasse bzw. das Objek der Klasse 😉

Ich hatte dir noch andere Möglichkeiten genannt:
Hier ein Beispiel zu einer davon http://stackoverflow.com/questions/4722835/how-to-temporarily-disable-event-listeners-in-swing
 
Wie wählt man denn die Antwort aus?
Wenn du z.B. JButtons benutzt könntest du sie mit setEnabled(false) "deaktivieren".

Gruß
Luk
 
Problem ist ich kann/darf den quellcode nicht komplett posten..
Code:
public void actionPerformed(ActionEvent e)
Hab wie gesagt 4 davon, für jede frage einen. und wenn man den button drückt erscheint ein weiterer der weiterleitet zur nächsten frage.

Problem ist nur das man das falsche klicken kann und trzotzdem weiter klicken kann bis man das richtige hat und somit sogar den Zähler für richtig hoch machen kann.
Man sollte den button halt nur 1 mal klicken können und dabei alle anderen eventhandler deaktivieren.

Bis auf die 2 die dafür da sind auf die Startseite zu springen und den für die nächste Frage.
 
Code:
                btnAntwortA.setEnabled(false);
                btnAntwortB.setEnabled(false);
                btnAntwortC.setEnabled(false);
                btnAntwortD.setEnabled(false);
hab ich jetzt beim EventHandler bei btnAntwortD drinne.
Wenn ich das selbe jetzt bei den anderen einfüge kommt stück für stück von D runter zu A
das der jweilige Button nicht "resolved" werden kann?
 
Also ohne nachvollziehbaren Code, wird es schwierig und zur großen Rumraterei !! 😕
Wenn eine Buttonvariable nicht aufgelöst werden kann, ist sie, nicht deklariert, heißt anders, ...

Aber ohne den StackTrace und den relevanten Code wirds eben schwierig !!

Gruß Klaus
 
Also ich geh davon aus, dass das Problem dabei liegt das Button A vor Button D kommt, bei D kennt er ja alle variablen bei A halt nicht. Aber auch schon bei A soll er wenn ich es klicken die möglichkeit nehmen weitere Buttons zu drücken. Wie gesagt bei D gehts und bei C geht es bis zu C nur D kann man weiterhin auswählen.
Der Fehler lautet: btnAntwortD cannot be resolved
 
liegt das Button A vor Button D kommt
Was soll das bedeuten ??
Meinst Du deine "setEnabled" von oben? Falls JA, die haben damit gar nicht zu tun!!
http://stackoverflow.com/questions/2585650/variable-cannot-be-resolved

ich kann/darf den quellcode nicht komplett posten
Was denn nun??
Kannst Du nicht oder darfst Du nicht?

Im ersten Fall: ohne Code bin ich raus (keine Zeit und keine Lust !!) 🙄
Im zweiten Fall: dann baue ein kleines nachvollziehbares, compilierfähiges Beispielprogramm!

Gruß Klaus
 
Also ich geh davon aus, dass das Problem dabei liegt das Button A vor Button D kommt, bei D kennt er ja alle variablen bei A halt nicht. Aber auch schon bei A soll er wenn ich es klicken die möglichkeit nehmen weitere Buttons zu drücken. Wie gesagt bei D gehts und bei C geht es bis zu C nur D kann man weiterhin auswählen.
Wo der Button auf der UI liegt ist vollkommen egal. Wichtig ist in welcher Klasse er wo deklariert wird und wo er verwendet wird (werden soll).
Aber hier sind wir wieder beim Thema Code. Ohne etwas mehr Informationen (in bester Form als Code) wird es schwer.

Der Fehler lautet: btnAntwortD cannot be resolved
Sagt aus da ihm die Variable "btnAntwortD" nicht bekannt ist an dieser Stelle. Warum kann man ohne Code nicht sagen

Und weiter haben habe ich einen Link gepostet mit einer weiteren Möglichkeit dein Ziel zu erreichen. Anstatt die Buttons zu deaktivieren wird ein Flag gesetzt, welches die weitere vearbeitung nach der 1.Antwort "verhindert".
 
Ich darf denn quellcode nicht posten..
ich habe mit setEnabled in jedem Eventhandler der einzelnen antwort möglichkeiten das oben genannte eingetragen.
Was zum genannten Fehler geführt hat.
 
Nochmal: die Meldung "... cannot be resolved" hat nichts, aber auch gar nichts, mit dem "setEnabled" zu tun!!!

Sagt aus da ihm die Variable "btnAntwortD" nicht bekannt ist an dieser Stelle. Warum kann man ohne Code nicht sagen

Und wenn Du wirklich nicht posten DARFST (was immer das bedeutet ??), da poste hier ein kleines, compilierfähig Beispielprogramm, mit dem das Verhalten nachgestellt werden kann !!

Gruß Klaus
 
Hi,
nein, sorry 🙁

Erstens habe ich dafür keine Zeit - sitze hier ja auf der Arbeit und mache das ganze nur nebenbei, wenn Zeit ist!

Zweitens ist das nicht der Sinn und Zweck dieses Forums! Es sollen ggf. alle etwas davon haben ... 🙄
Es wird doch wohl möglich sein, zunächst mal alle Zeilen zu diesen Variablen (also Deklaration und Verwendung) zu posten!
Eventuell musst Du auch mal die entsprechenden Scopes prüfen !!

Gruß Klaus
 
Problem gelöst.

Das Problem war das die Objekte zwar alle existiert haben aber "zu spät" erstellt werden.
Ich habe somit die Objekte der Buttons weiter oben eingefügt damit das Programm frühzeitig meine Variablen kennt.

Vielen dank an alle trotzdem und vorallem an KaffeFan
 

Neue Themen


Zurück
Oben