Nächste Frage aufrufen in einer Schleife

nico753

Mitglied
Servus,
ich muss für die Schule ein Quiz programmieren.
Komme eigentlich gut zurecht nur habe ich nu ein kleines Problem.

Die Aufgabenstellung sagt das das ganze mit einer Schleife gelöst werden soll.

So nu will ich dass beim Klick auf den Antwort Button die nächste frage gestellt wird.

Meine idee war bsiher folgenende:

Java:
int i= 1;
      do
         {
           f.frage.setText(fragenleicht[i][0]);
           if (obj==f.btnantworta) i++;
           System.out.println(i);


         }while (i<=fragenleicht.length);


Nur leider hab ich das gefühl das ich nen gravierenden Denkfehler drin hab.
Das ganze geht nämlich nicht wies soll xD

Würde mich über kleine Tipps freuen
 

HimBromBeere

Top Contributor
Das ganze geht nämlich nicht wies soll xD
Wie soll es denn gehen? Die Aussage ist leider extrem unpräzise. Ins Blaue geraten, denke ich mal, hier liegt das Problem:
Java:
if (obj==f.btnantworta) i++;
Objektvergleiche (auch Strings) macht man mit
Code:
.equals()
, nicht mit
Code:
==
Sollte es sich bei
Code:
btnantworta
zudem um einen Button handeln, musst du natürlich zum Auslesen des Textes die
Code:
getText
-Methode aufrufen.
 

nico753

Mitglied
vielleicht etwas schwammig ausggedrückt von mir:(

passieren soll im Grunde folgendes:

Beim klickt auf den antwort button soll i erhöht werden, sodass eine neue frage erscheint
das ganze bis das fragen array am ende ist.


.equals merk ich mir.. doofes veraltetes schuljavabuch :(
 

HimBromBeere

Top Contributor
OK... ich hatte angenommen, du willst mit dem Vergleich den Text eines Textfeldes (antwort) mit der tatsächlichen Antwort vergleichen (
Code:
obj
). Aber scheinbar willst du mit dem Test herausfinden, ob der Schalter gedrückt wurde, richtig? In dem Falle müsste man mal herausfinden, wo dein
Code:
obj
herkommt,
Code:
.equals()
stimmt aber ungeachtet dessen trotzdem.
 

nico753

Mitglied
Java:
import java.awt.*;
public class Quiz extends Frame
{
  
  // Panel North
  private Panel pnlNorth = new Panel( new GridLayout(2,1));
  private Label ueberschrift = new Label ("Quiz: Zum Thema blablablablablabla ");
  private Label schwierigkeit = new Label ("Bitte wählen Sie die Schwierigkeit der Fragen aus: ");
  private Panel pnlNorthZeile1 = new Panel ( new FlowLayout (FlowLayout.CENTER));
  private Panel pnlNorthZeile2 = new Panel ( new FlowLayout (FlowLayout.LEFT));
  
  
  // Panel Center
  private Panel pnlCenter = new Panel ( new GridLayout(1,3));
  public Button btnleicht = new Button ("Leicht");
  
  private Button btnmittel = new Button ("Mittel");
  private Button btnschwer = new Button ("Schwer");
  
  
  //Panel South
   private Panel pnlSouth = new Panel ( new GridLayout(4,1));
   private Panel pnlSouthfrage = new Panel ( new GridLayout(1,3));
   private Panel pnlSouthantworten = new Panel ( new GridLayout(2,2));
   private Panel pnlSoutherg = new Panel ();
   private Label platz3 = new Label ("");
   private Label platz = new Label ("");
   private Label platz2 = new Label ("");
   public Label frage = new Label ("Frage");
   public Button btnantworta = new Button ("A");
   private Button btnantwortb = new Button ("B");
   private Button btnantwortc = new Button ("C");
   private Button btnantwortd = new Button ("D");
   private Label erg = new Label ("Ergebnis");
   
  
  private MyWindowListener
          myWindowListener = new MyWindowListener();
  private MyActionListener myActionListener = new MyActionListener(this);

  public Quiz()
  {
    this.setTitle("Quiz");
    
    // North
    this.ueberschrift.setFont( new Font ("",Font.BOLD,16));
    this.pnlNorthZeile1.add(this.ueberschrift);
    this.add(this.pnlNorth,BorderLayout.NORTH);
    this.pnlNorth.add(this.pnlNorthZeile1);
    this.pnlNorth.add(this.pnlNorthZeile2);
    this.pnlNorthZeile2.add(this.schwierigkeit);
    


    // Center
    this.add(this.pnlCenter,BorderLayout.CENTER);
    this.pnlCenter.add(this.btnleicht);
    this.pnlCenter.add(this.btnmittel);
    this.pnlCenter.add(this.btnschwer);
    
    // South
    this.add(this.pnlSouth,BorderLayout.SOUTH);
    this.pnlSouth.add(this.platz3);
    this.pnlSouth.add(this.pnlSouthfrage);
    this.pnlSouthfrage.add(this.platz);
    this.pnlSouthfrage.add(this.frage);
    this.pnlSouthfrage.add(this.platz2);
    this.pnlSouth.add(this.pnlSouthantworten);
    this.pnlSouthantworten.add(this.btnantworta);
    this.pnlSouthantworten.add(this.btnantwortb);
    this.pnlSouthantworten.add(this.btnantwortc);
    this.pnlSouthantworten.add(this.btnantwortd);
    this.pnlSouth.add(this.pnlSoutherg);
    this.pnlSoutherg.add(this.erg);
    
    

    
    this.pack();
    this.show();
    
    // Ereignisse
    this.addWindowListener(myWindowListener);
    this.btnleicht.addActionListener(myActionListener);
  }
  

  
  public static void main (String args[])
  {
    Quiz f = new Quiz();

  }
}


Java:
import java.awt.event.*;
public class MyActionListener implements ActionListener
{

  public String[][] fragenleicht = new String[20][5];
  public Quiz f;
  public MyActionListener(Quiz f)
  {
    this.f=f;
  }
  public void actionPerformed(ActionEvent e)
  {
    //Varibeln deklaration
    int difficult=0;

    
    
    
    //Fragen leicht
    
    fragenleicht [1][0] = "Meine Frage";
    fragenleicht [2][0] = "Meine Frage2";
    
    
    
    Object obj = e.getSource();
    
    // Schwierigkeit bestimmen
    if (obj == f.btnleicht) difficult = 1;
    else if (obj == f.btnleicht) difficult = 2;
    else if (obj == f.btnleicht) difficult = 3;
    
    
    
    
    if (difficult==1)
     {
      
      
    System.out.println("Leicht");
    
      int i= 1;
      do
         {
           f.frage.setText(fragenleicht[i][0]);
           if (obj==f.btnantworta) i++;
           System.out.println(i);


         }while (i<=fragenleicht.length);
    
    }
    
    
    else if (difficult == 2)
    System.out.println("Mittel");
    
    else if (difficult == 3)
    System.out.println("Schwer");
    

  }
}


sodele was ich erreichen will ist das durch das beantworten der ersten frage die zweite frage aufgerufen wird.
 
S

SlaterB

Gast
der ActionListener reagiert genau auf einen Button-Klick,
der soll nicht lange laufen, der kontrolliert nicht alle Fragen in einer Schleife, die ja sicher weitere Button-Klicks mit wieder laufenden Listenern heraufbeschwören,
was der Listener machen kann ist wissen/ merken/ herausfinden, welche Frage gerade dran war, und auf die nächste weiterzuschalten,

das ist eine Aktion, keine Schleife, durch den nächsten Buttonklick kommt der Listener wieder dran,
dann gehts schon weiter, keine Sorge
 

nico753

Mitglied
du hast mir nen zufällig nen kleines schnipsel code oder?
steht grad völlig aufem schlauch.


natürlich sollst mir net den ganzen geben ist ja meine arbeit...
 
S

SlaterB

Gast
ich weiß ja nicht (und will möglichst auch nicht genau nachschauen) wie dein Programm aufgebaut ist,
ob falsche Antworten möglich sind, mehrere Button zur Auswahl stehen oder was auch immer,

im einfachen Fall könnte der Listener ein Instanzattribut i haben, welches anfangs 0 ist für die 0te oder 1te Frage,
das wird um 1 erhöht und der i-te Fragetext irgendwo eingefügt,
2-3 simple Codezeilen
 

Jodo

Aktives Mitglied
Hi,

kannst du mal die Aufgabenstellung für den Teil genau nennen?
Wie SlaterB schon schreibt, ist ein ActionListener dafür da, einmal eine Aktion zu tätigen und nicht ständig in Schleife zu laufen. Daher finde ich die Aufgabe, so wie du sie hier genannt hast, etwas komisch.

Und ein Hinweis, da ich denke, dass du mit
Code:
MyActionListener
auf Events bei 3 verschiedenen Buttons für die Schwierigkeit reagieren willst: Arbeite mit einem ActionCommand für die Buttons.
Sieht in etwa so aus dann:
Java:
buttonL.setActionCommand("leicht");
...

//im Listener kannst du dann abfragen
String actionCmd = e.getActionCommand();

if (actionCmd.equals("leicht")) {
    //setzte leichte Frage ins Textfeld
} else if ...

Aber poste wie gesagt mal die Aufgabenstellung für diesen Teil, dann kann man dir bestimmt besser weiterhelfen.

Gruß
Jodo
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Aufs nächste Zweistundenintervall aufrunden Java Basics - Anfänger-Themen 6
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
M Objekt mit eindeutiger ID löschen, das nächste Objekt hat dann diese ID Java Basics - Anfänger-Themen 5
B Nächster möglicher Tag bekommen / Nächste mögliche Zeit bekommen Java Basics - Anfänger-Themen 24
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
S Java CSV, er nimmt die nächste Zeile nicht Java Basics - Anfänger-Themen 2
G Anfängerbuch geschafft - nächste Schritte? Java Basics - Anfänger-Themen 14
C Von einer Klasse auf die nächste Zugreifen und die Methode nutzen? Java Basics - Anfänger-Themen 5
E Nächste freie Zeile in jTable ansprechen Java Basics - Anfänger-Themen 5
-horn- CSV-file zeilenweise einlesen, was bearbeiten, nächste Zeile Java Basics - Anfänger-Themen 15
C Wenn Wert existiert, dann weiter auf nächste Seite Java Basics - Anfänger-Themen 2
C Nächste Zeile in einer Datei Java Basics - Anfänger-Themen 5
A nächste Zeile schreiben Java Basics - Anfänger-Themen 4
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
J Frage zum Loggen Java Basics - Anfänger-Themen 18
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
B Erste Schritte Learning Coding (!) Frage an erfahrene Programmierer. Java Basics - Anfänger-Themen 23
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
C Exception-Frage Java Basics - Anfänger-Themen 3
J Eine Frage zur Schreibweise == ? : Java Basics - Anfänger-Themen 3
S Frage des Designs Java Basics - Anfänger-Themen 1
JavaTalksToMe Extends/Implements Frage Java Basics - Anfänger-Themen 3
pkm Frage zu Servletfunktion Java Basics - Anfänger-Themen 0
B Frage zur Währungsumrechnung Java Basics - Anfänger-Themen 3
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
N Frage zum Newton-Fraktal Java Basics - Anfänger-Themen 1
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
I Frage zu SkipList Java Basics - Anfänger-Themen 4
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
Kirby.exe Allgemeine Frage Java Basics - Anfänger-Themen 3
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben