Hallo,
ich soll für den Biologieunterricht ein Quiz erstellen.
Mit Java kam ich bisher gut zurecht...
Das Layout klappt soweit und das Action event funktioniert auch...
Doch wenn nun die zweite Frage gestellt wird, ist der ActionListener immer noch auf die Antworten der ersten Frage eingestellt.
Gibt es eine Möglichkeit den ActionListener zu entfernen und einen neuen zu definieren ?
Hier ist der Code:
Main:
und die Frage 1:
Danke für eure Hilfe
ich soll für den Biologieunterricht ein Quiz erstellen.
Mit Java kam ich bisher gut zurecht...
Das Layout klappt soweit und das Action event funktioniert auch...
Doch wenn nun die zweite Frage gestellt wird, ist der ActionListener immer noch auf die Antworten der ersten Frage eingestellt.
Gibt es eine Möglichkeit den ActionListener zu entfernen und einen neuen zu definieren ?
Hier ist der Code:
Main:
Java:
public class biologie_main {
public static void main(String[] args) {
new Frage1();
}
}
und die Frage 1:
Java:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Frage1 extends JFrame implements ActionListener{
JFrame f;
JLabel text = new JLabel("Hier kommt eine Biologie Frage hinein!"); //Frage Nr. 1
JButton knopf1 = new JButton("Antwort A"); //Antwort A
JButton knopf2 = new JButton("Antwort B"); //Antwort B
JButton knopf3 = new JButton("Antwort C"); //Antwort C
JButton knopf4 = new JButton("Antwort D"); //Antwort D
int Punktzahl = 0;
public Frage1(){
f = new JFrame();
f.setTitle("Biologie-Test - Frage 1"); //3 Leerzeichen
f.add(text);
f.add(knopf1);
knopf1.addActionListener(this);
f.add(knopf2);
knopf2.addActionListener(this);
f.add(knopf3);
knopf3.addActionListener(this);
f.add(knopf4);
knopf4.addActionListener(this);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
f.setSize(800, 600);
f.setBackground(Color.yellow);
f.setLayout(new GridLayout(-1, 1));
f.setVisible(true);
}
public void actionPerformed(ActionEvent a) {
if(a.getSource() == knopf1){ // richtige Antwort
System.out.println(a.getActionCommand());
System.out.println(getTitle() + " " + "Richtig !");
f.setBackground(Color.green);
Punktzahl = Punktzahl + 1;
System.out.println("Dein Punktestand beträgt:" + " " + Punktzahl);
System.out.println(" ");
Frage2();
}else{ // falsche Antwort
System.out.println(a.getActionCommand());
System.out.println(getTitle() + " " + "Falsch !");
f.setBackground(Color.red);
Punktzahl = Punktzahl + 0;
System.out.println("Dein Punktestand beträgt:" + " " + Punktzahl);
System.out.println(" ");
Frage2();
}
}
private void Frage2() {
remove(f);
f.setTitle("Biologie-Test - Frage 2");
text.setText("Hier kommt die Biologie Frage Nr. 2 hinein"); //Frage Nr. 2
text.repaint();
knopf1.setText("Antwort A1"); //Antwort A
knopf1.repaint();
knopf2.setText("Antwort B1"); //Antwort B
knopf2.repaint();
knopf3.setText("Antwort C1"); //Antwort C
knopf3.repaint();
knopf4.setText("Antwort D1"); //Antwort D
knopf4.repaint();
}
}
Danke für eure Hilfe