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
 

Joose

Top Contributor
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.
 

Beatzz

Mitglied
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.
 

Joose

Top Contributor
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
 

KaffeeFan

Bekanntes Mitglied
Wie wählt man denn die Antwort aus?
Wenn du z.B. JButtons benutzt könntest du sie mit setEnabled(false) "deaktivieren".

Gruß
Luk
 

Beatzz

Mitglied
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.
 

Beatzz

Mitglied
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?
 

VfL_Freak

Top Contributor
Also ohne nachvollziehbaren Code, wird es schwierig und zur großen Rumraterei !! :confused:
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
 

Beatzz

Mitglied
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
 

VfL_Freak

Top Contributor
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 !!) :rolleyes:
Im zweiten Fall: dann baue ein kleines nachvollziehbares, compilierfähiges Beispielprogramm!

Gruß Klaus
 

Joose

Top Contributor
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".
 

Beatzz

Mitglied
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.
 

VfL_Freak

Top Contributor
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
 

VfL_Freak

Top Contributor
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 ... :rolleyes:
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
 

Beatzz

Mitglied
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
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
G Quiz mit zufälligen Rechenaufgaben Java Basics - Anfänger-Themen 3
L Konzept für Quiz Java Basics - Anfänger-Themen 33
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
S Zufallsgenerator für ein Quiz Java Basics - Anfänger-Themen 8
S Kleines Quiz Programm Java Basics - Anfänger-Themen 4
D Java Quiz gesucht Java Basics - Anfänger-Themen 7
S Java Quiz mit Gui Java Basics - Anfänger-Themen 16
F Fragen zu Quiz programm Java Basics - Anfänger-Themen 9
E Java Quiz Programmieren Java Basics - Anfänger-Themen 6
F Fragen- Antwortenkatalog ("Quiz") Java Basics - Anfänger-Themen 2
H Brauch bei programmierung von quiz unterstützung Java Basics - Anfänger-Themen 11
kulturfenster Quiz - Gestaltung Java Basics - Anfänger-Themen 2
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
O TextField in GridPane beschränken Java Basics - Anfänger-Themen 5
Q Scanner auf eine Zahl beschränken Java Basics - Anfänger-Themen 2
F Gültigkeitszeitraum von Software beschränken Java Basics - Anfänger-Themen 17
M JTextArea Zeichen Beschränken Java Basics - Anfänger-Themen 11
J eingabe beschränken ansonsten exception!! Java Basics - Anfänger-Themen 7
G Eingabe im jTextField auf Zahlen beschränken Java Basics - Anfänger-Themen 2
I Swing-Komponenten-Größe im GridBagLayout beschränken Java Basics - Anfänger-Themen 2
P String auf Zahlen beschränken Java Basics - Anfänger-Themen 16
G Zugriff auf eine Klasse beschränken. Java Basics - Anfänger-Themen 6
P JFormattedTextField auf x zeichen beschränken Java Basics - Anfänger-Themen 6
M Float-Zahl auf x Stellen beschränken Java Basics - Anfänger-Themen 6
R Programm zeitlich beschränken lassen. Java Basics - Anfänger-Themen 2
D Eingabe auf Zahlen beschränken Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben