Sehr geehrte Forenmitglieder.
ich bin gerade dabei ein kleines Quiz zu programmieren, stehe aber gerade vor folgendem Problem:
Das Programm startet und ich bekomme ein Fenster mit 4 Buttons. Beim drücken des Buttons soll bei falscher Antwort der Button rot und der richtige Grün werden. Das funktioniert soweit. Jetzt habe ich das in eine Schleife gepackt und möchte das die Frage x mal wiederholt wird, leider macht Sie das nicht, das Feld und die Buttons bleiben einfach aktiviert und ich kann die Buttons nicht erneut auswählen. Natürlich möchte ich nicht 5x die gleiche frage haben, im späteren verlauf möchte ich das durch Zufall immer eine andere Frage aus einer Exeltabelle ausgelesen wird. Aber zuerst möchte ich dass das Programm z.B 5 mal die Schleife durchläuft also sprich ich 5 mal die gleiche Frage erneut beantworten kann und danach das Programm sich einfach beendet.
Hier ist der Quellcode:
Wäre schön wenn mir jemand weiterhelfen könnte :/
ich bin gerade dabei ein kleines Quiz zu programmieren, stehe aber gerade vor folgendem Problem:
Das Programm startet und ich bekomme ein Fenster mit 4 Buttons. Beim drücken des Buttons soll bei falscher Antwort der Button rot und der richtige Grün werden. Das funktioniert soweit. Jetzt habe ich das in eine Schleife gepackt und möchte das die Frage x mal wiederholt wird, leider macht Sie das nicht, das Feld und die Buttons bleiben einfach aktiviert und ich kann die Buttons nicht erneut auswählen. Natürlich möchte ich nicht 5x die gleiche frage haben, im späteren verlauf möchte ich das durch Zufall immer eine andere Frage aus einer Exeltabelle ausgelesen wird. Aber zuerst möchte ich dass das Programm z.B 5 mal die Schleife durchläuft also sprich ich 5 mal die gleiche Frage erneut beantworten kann und danach das Programm sich einfach beendet.
Hier ist der Quellcode:
Java:
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Quiz_Fenster extends JFrame implements ActionListener {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
JLabel frage;
JButton ant[] = new JButton[4];
JPanel panel;
JFrame w1;
boolean fragebeantwortet, schleife;
public static void main(String[] args) {
new Quiz_Fenster();
}
public Quiz_Fenster() {
panel = new JPanel();
w1 = new JFrame();
w1.setSize(400, 400);
w1.setLocation((int)(dim.getWidth() - 700) / 2, (int)(dim.getHeight() - 1500 / 2));
w1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
w1.setVisible(true);
w1.setLayout(null);
frage = new JLabel("Was ist die Hauptstadt von Deutschland");
frage.setBounds(52, 15, 250, 40);
w1.add(frage);
ant[0] = new JButton(" Stuttgart ");
ant[0].setBounds(52, 90, 120, 40);
w1.add(ant[0]);
ant[1] = new JButton(" München ");
ant[1].setBounds(52, 160, 120, 40);
w1.add(ant[1]);
ant[2] = new JButton(" Berlin");
ant[2].setBounds(220, 90, 120, 40);
w1.add(ant[2]);
ant[3] = new JButton(" Bonn ");
ant[3].setBounds(220, 160, 120, 40);
w1.add(ant[3]);
frage = new JLabel();
ant[0].addActionListener(this);
ant[1].addActionListener(this);
ant[2].addActionListener(this);
ant[3].addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
for (int durchlauf = 0; durchlauf < 5; durchlauf++) {
if (ae.getSource() == this.ant[0]) {
if ((!(fragebeantwortet))) {
ant[0].setBackground(new Color(255, 0, 0));
ant[2].setBackground(new Color(0, 255, 0));
fragebeantwortet = true;
}
} else if (ae.getSource() == this.ant[1]) {
if ((!(fragebeantwortet))) {
ant[1].setBackground(new Color(255, 0, 0));
ant[2].setBackground(new Color(0, 255, 0));
fragebeantwortet = true;
}
} else if (ae.getSource() == this.ant[2]) {
if ((!(fragebeantwortet))) {
ant[2].setBackground(new Color(0, 255, 0));
fragebeantwortet = true;
}
} else if (ae.getSource() == this.ant[3]) {
if ((!(fragebeantwortet))) {
ant[3].setBackground(new Color(255, 0, 0));
ant[2].setBackground(new Color(0, 255, 0));
fragebeantwortet = true;
}
}
}
}
Zuletzt bearbeitet von einem Moderator: