Quiz

MarkoAsmara

Mitglied
kann mir bitte jemand die fehlermeldung erklären?




Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// Import-Anweisung für unseren JFrame
import javax.swing.JFrame;
// Import-Anweisung für unser JLabel
import javax.swing.JLabel;
public class Frame{
  public static void main(String[] args)
    {
  
    int punkte = 0;
  
    String[] frage1 = {
    "Wann fand die erste Mondlandung statt?",
    "<1> 1989",
    "<2> 1969",
    "<3> 1927",
    "2"
    };
  
    String[] frage2 = {
    "Von welchem Künstler stammt das Gemälde Sternenhimmel?",
    "<1> Rainer Randig",
    "<2> Pablo Picasso",
    "<3> Vincent van Gogh",
    "3"
    };
    String[] frage3 = {
    "Wie heißt die Hauptstadt von Eritrea?",
    "<1> Asmara",
    "<2> Bocklemühl",
    "<3> Biewende",
    "1"
    };
    String[] frage4 = {
    "Wann wurde die UNO gegründet?",
    "<1> 1945",
    "<2> 1938",
    "<3> 1990",
    "1"
    };
    String[] frage5 = {
    "Für welchen europäischen Topklub spiele Hristo Stoichkov?",
    "<1> FC Barcelona",
    "<2> Manchester United",
    "<3> Inter Mailand",
    "1"
    };
    String[] frage6 = {
    "Wer gewann die Fußballweltmeisterschaft 2010?",
    "<1> Argentinien",
    "<2> Spanien",
    "<3> Niederlande",
    "2"
    };
    //Fragen werden in einem zweidimensionalen String-Array gespeichert
    String[][] liste = {
    frage1,frage2,frage3,frage4,frage5,frage6
    };
    //Ausgabe von Fragen in der Konsole
  
    for(int i=0;i<liste.length;i++)
      {
      /* Erzeugung eines neuen Frames mit dem
      Titel "Mein JFrame Beispiel" */           
      JFrame meinFrame = new JFrame("Mein JFrame Beispiel");
      /* Wir setzen die Breite und die Höhe
      unseres Fensters auf 200 Pixel */        
      meinFrame.setSize(700,700);
      /* Hinzufügen einer einfachen Komponente
      (hier: JLabel) */
      meinFrame.add(new JLabel( System.out.println(liste[i][0])));
      System.out.println(liste[i][1]);
      System.out.println(liste[i][2]);
      System.out.println(liste[i][3]);
      System.out.println("Bitte Antwort eingeben: ");
      // Wir lassen unseren Frame anzeigen
      meinFrame.setVisible(true);
    
    
      //Einlesen von Eingabe
      BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    
      try {
        String antwort =  eingabe.readLine();
        System.out.println("Sie haben als Antwort: "+antwort+" eingegeben.");
      
        //Vergleichen von Antworten
        if(antwort.equals(liste[i][4]))
          {
          System.out.println("#GenauDAS!\n");
          punkte++;
          }
        else
          {
          System.out.println("#nö!\n");
        }
      
      } catch (IOException e) {
        System.out.println("Falsche Eingabe!");
      }
    }
    System.out.println("Sie haben "+punkte+" von 6 Punkten erreicht.");
    if(punkte==6)
      {
      System.out.println("Sie erhalten die Gewinnsumme von 1.000.000€!");
      }
    else
      {
      System.out.println("Versuchen Sie es erneut!");
    }
  }  
  
;}
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Diese Zeile: meinFrame.add(new JLabel(System.out.println(liste[i][0])));
Muss so heißen: meinFrame.add(new JLabel(liste[i][0]));[/i][/i]
 

Joose

Top Contributor
In dem du mittels Schleife alle deine Fragen hinzufügen lässt.
Diese Schleife hast du ja schon, das Problem ist das du nach dem hinzufügen der 1.Frage auf eine Eingabe auf der Konsole wartest.
Sobald diese erfolgt ist (ob richtig oder falsch) erzeugst du ein komplett neues Fenster und fügst diesem die nächste Frage hinzu usw.

1. Vermeide das mischen von GUI und Konsole, entweder das eine oder das andere. (Die Konsole kann man natürlich für Debugsachen bzw. Logging weiterhin verwenden)
2. Es wäre besser nur ein Fenster zu erzeugen vor der Schleife welcher du die einzelnen Fragen hinzufügst.
 

Neue Themen


Oben