import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Array;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
public class Hauptklasse extends JFrame {
java.util.Random random = new java.util.Random();
Fragen frage = new Fragen();
private JLabel infolabel;
private JLabel fragelabel;
private JButton buttona;
private JButton buttonb;
private JButton buttonc;
private JButton buttond;
private JButton ffJoker;
private JButton teleJoker;
private JButton publiJoker;
private JButton weiter;
private JButton neu;
private JButton spielanf;
//Vereinfachung zur Überprüfung von Richtig und Falsch
private int richtig = 49;
//Array und int für Gewinn
private String gewinn [] = {"0", "50", "100", "200", "300", "500", "1000", "2000", "4000", "8000", "16000", "32000", "64000", "125000", "500000", "1 Mio."};
private int stufe = 0;
private int check = 0;
//Erstellen der Grafischen Benutzeroberfläche
public Hauptklasse()
{
//Allgemeines zum Fenster und Layout
setLayout (null);
setTitle("Wer wird Reich?");
setSize(970,650);
setResizable(false);
//Initialisieren + Einfügen des Textes auf die Joker
infolabel = new JLabel();
fragelabel = new JLabel();
buttona = new JButton ();
buttonb = new JButton ();
buttonc = new JButton ();
buttond = new JButton ();
ffJoker = new JButton ("50 : 50");
teleJoker = new JButton ("Telefonjoker");
publiJoker = new JButton ("Publikumsjoker");
weiter = new JButton ("Nächste Frage!");
neu = new JButton ("Neues Spiel");
spielanf = new JButton ("Spiel starten");
//Layout und Stil
infolabel.setBounds(30, 150, 722, 70);
fragelabel.setBounds(30, 250, 722, 70);
buttona.setBounds(30, 360, 350, 70);
buttonb.setBounds(400, 360, 350, 70);
buttonc.setBounds(30, 450, 350, 70);
buttond.setBounds(400,450, 350, 70);
ffJoker.setBounds(500, 100, 100, 70);
teleJoker.setBounds(610, 100, 100, 70);
publiJoker.setBounds(720, 100, 100, 70);
weiter.setBounds(610, 300, 100, 70);
neu.setBounds(610, 300, 100, 70);
spielanf.setBounds(610, 300, 100, 70);
/*
buttona.setBackground(Color.blue);
buttona.setForeground(Color.blue);
buttona.setContentAreaFilled(false);
buttona.setBorder((Border) new BevelBorder(BevelBorder.RAISED));
*/
//Aktionen definieren
buttona.addActionListener(new buttonklick());
buttonb.addActionListener(new buttonklick());
buttonc.addActionListener(new buttonklick());
buttond.addActionListener(new buttonklick());
ffJoker.addActionListener(new ffjokerklick());
teleJoker.addActionListener(new telejokerklick());
publiJoker.addActionListener(new publijokerklick());
weiter.addActionListener(new next());
neu.addActionListener(new next());
spielanf.addActionListener(new next());
//Hinzufügen der Elemente / Startbildschrim
add(neu);
add(spielanf);
add(weiter);
add(fragelabel);
add(buttona);
add(buttonb);
add(buttonc);
add(buttond);
add(ffJoker);
add(teleJoker);
add(publiJoker);
add(infolabel);
weiter.setVisible(false);
neu.setVisible(false);
fragelabel.setVisible(false);
buttona.setVisible(false);
buttonb.setVisible(false);
buttonc.setVisible(false);
buttond.setVisible(false);
ffJoker.setVisible(false);
teleJoker.setVisible(false);
publiJoker.setVisible(false);
setVisible(true);
}
public class buttonklick implements ActionListener
{
//Definition der einzelnen Ereignisse, wenn eine Frage beantwortet wird
public void actionPerformed(ActionEvent e) {
buttona.setEnabled(false);
buttonb.setEnabled(false);
buttonc.setEnabled(false);
buttond.setEnabled(false);
ffJoker.setEnabled(false);
teleJoker.setEnabled(false);
publiJoker.setEnabled(false);
// Hier werden die Variablen KonA1 - A4 benötigt, aber sie werden als nicht definiert angezeigt. Genaueres Problem steht weiter unten im Quelltext.
if (e.getSource() == buttona && KonA1 == richtig){
stufe++;
infolabel.setText("Das war die richtige Antwort! Ihr aktueller Gewinn beträgt " + gewinn[stufe] +" Euro!");
weiter.setVisible(true);
}
else if (e.getSource() == buttonb && KonA2 == richtig){
stufe++;
infolabel.setText("Das war die richtige Antwort! Ihr aktueller Gewinn beträgt nun " + gewinn[stufe] +" Euro!");
// Abwarten
weiter.setVisible(true);
}
else if (e.getSource() == buttonc && KonA3 == richtig){
stufe++;
infolabel.setText("Das war die richtige Antwort! Ihr aktueller Gewinn beträgt nun " + gewinn[stufe] +" Euro!");
// Abwarten
weiter.setVisible(true);
}
else if (e.getSource() == buttond && KonA4 == richtig){
stufe++;
infolabel.setText("Das war die richtige Antwort! Ihr aktueller Gewinn beträgt nun " + gewinn[stufe] +" Euro!");
// Abwarten
weiter.setVisible(true);
}
else {
if (stufe > 10) {check = 10;}
else if (stufe > 5 ) {check = 5;}
else {check = 0;}
infolabel.setText("Das war leider die falsche Antwort. Sie gehen mit " + gewinn[check] +" Euro nach Hause!");
stufe = 0;
neu.setVisible(true);
}
if (stufe == 15){
infolabel.setText("Sie haben es geschafft! Sie gewinnen 1 Millionen Euro!!");
stufe = 0;
neu.setVisible(true);
}
}
}
public class next implements ActionListener
{
//Definition der Ereignisse, wenn die Frage beantwortet wurde
public void actionPerformed(ActionEvent e) {
weiter.setVisible(false);
neu.setVisible(false);
spielanf.setVisible(false);
fragelabel.setVisible(true);
buttona.setVisible(true);
buttonb.setVisible(true);
buttonc.setVisible(true);
buttond.setVisible(true);
ffJoker.setVisible(true);
teleJoker.setVisible(true);
publiJoker.setVisible(true);
weiter.setVisible(false);
neu.setVisible(false);
spielanf.setVisible(false);
fragelabel.setEnabled(true);
buttona.setEnabled(true);
buttonb.setEnabled(true);
buttonc.setEnabled(true);
buttond.setEnabled(true);
ffJoker.setEnabled(true);
teleJoker.setEnabled(true);
publiJoker.setEnabled(true);
int zufall = random.nextInt(frage.fragen[stufe].length);
fragelabel.setText(frage.fragen [stufe] [zufall]);
buttona.setText(frage.antworten[stufe] [zufall] [0]);
buttonb.setText(frage.antworten[stufe] [zufall] [1]);
buttonc.setText(frage.antworten[stufe] [zufall] [2]);
buttond.setText(frage.antworten[stufe] [zufall] [3]);
// Hier liegt der große Fehler, ich definiere die Variablen KonA1 - A4, das klappt soweit auch wunderbar, doch sobald ich sie beim klick auf den anderen Button (oben bei ActionListener) wieder aufrufen will, funktioniert das nicht, woran kann das denn liegen?
int KonA1 = frage.antworten[stufe] [zufall] [0].charAt(0);
int KonA2 = frage.antworten[stufe] [zufall] [1].charAt(0);
int KonA3 = frage.antworten[stufe] [zufall] [2].charAt(0);
int KonA4 = frage.antworten[stufe] [zufall] [3].charAt(0);
}
}
}