Reaktion auf Betätigung von JRadioButton und Button

BigTicket

Mitglied
Guten Abend,
sitze derzeit vor einem kleineren Problem. Schreibe ein kleineres Quiz. Kann auch Fragen auf einer liste[][] ohne Probleme reinladen, allerdings nicht nach nach. Also wenn der Button Start gedrückt wird, dann startet das Quiz mit der ersten Frage. Das klappt auch soweit. Jetzt kommt das Problem. Wenn auf "Nächste Frage" geklickt wird, soll die nächste Frage in die TextArea geschrieben werden. Das geht nur für die zweite Frage. Krieg es nicht hin, dass erst, wenn der Button geklickt wird, die nächste Frage geladen wird. Next oder der gleichen funktioniert nicht. Die Abfrage, ob der Button benutzt wurde, soll nicht mit ActionPerformed sein, sonst müsste ich immer mehrere Methoden schreiben !
Anbei der Quellcode:
Code:
public static String Ergebnisse="";
    
   
    private void WeiterFrage()
    {
        String []frage2 = {
				"Was ist Linux?",
				"1 :Ein anderer Name für Windows.",
				"2: Ein Fisch.",
				"3: Hersteller von RAM-Chips.",
				"4: Ein Open-Source Betriebssystem.",
				"4"
		};
		String []frage3 = {
				"Wofür dient ein Monitor?",
				"1: Einlesen von Daten.",
				"2: Drucken von Daten.",
				"3: Sichtbare Ausgabe von Daten.",
				"4: Verebesserung der Arbeitsgeschwindigkeit des PCs.",
				"3"
		};
		String []frage4 = {
				"Wieso sollten regelmäßig Datensicherungen durchgeführt werden?",
				"1: Vermeidung von Datenverlust.",
				"2: Testen des Brenners.",
				"3: Aus Langeweile.",
				"4: Verstecken vor dem Staat.",
				"1"
				
		};
		String []frage5 = {
				"Was bedeutet die Abkürzung WWW?",
				"1: White Word write.",
				"2: World Wide Web.",
				"3: Wir wollen Wasser",
				"4: Whitcher was wonderful",
				"2"
				
		};
		String []frage6 = {
				"Was ist kein Bestandteil von Microsoft Office?",
				"1: Word",
				"2: Excel",
				"3: Writer",
				"4: Powerpoint",
				"3"
	
		};
		String []frage7 = {
				"Können auf Festplatten Daten gespeichert werden?",
				"1: Alle Datentypen.",
				"2: Nur .sys Dateien.",
				"3: Nur .dll Dateien.",
				"4: Nein. Die Festplatte ist ein Synonym für DVD-Brenner.",
				"1"
				
		};
		String []frage8 = {
				"Sollte ein Computer immer die beste Hardware verbaut haben?",
				"1: Natürlich. Nur das Neuste ist gerade gut genug.",
				"2: Die Leistung der Hardware sollte sich an den Aufgaben/der Software orientieren.",
				"3: Hardware kann man nicht verbauen. Software ist hier der richtige Begriff.",
				"4: Das wichtigste bei einem Computer ist das Gehäuse. Je größer, desto schneller ist der PC.",
				"2"
	
		};
		String []frage9 = {
				"Sortieren Sie die Betriebssysteme von Microsoft aufsteigend nach ihrem Erscheinungtermin!",
				"1: 95, 3.11, XP, Vista, 98, 2000",
				"2: 3.11,95, 2000,98,XP,Vista",
				"3: Vista,XP,2000,95,3.11,98",
				"4: 3.11,95,98,2000,XP,Vista",
				"4"
	
		};
		String []frage10 = {
				"Was bedeutet Open-Source?",
				"1: Der Programm-Code ist kostenpflichtig.",
				"2: Die Software wird bei der Installation extra mehrfach geöffnet.",
				"3: Der Programm-Code kann von jedem eingesehen werden und die Software ist kostenlos.",
				"4: Open-Source und AMD sind das gleiche.",
				"3"
	
		};
                String [][] liste=  { 
							  frage2,
							  frage3,
							  frage4,
							  frage5,
							  frage6,
							  frage7,
							  frage8,
							  frage9,
							  frage10
							  
				
		};
                
                for (int i = 0;i<1;i++)
		{
                    for (int j=0;j<5;j++)
                    {
                        
                    Ergebnisse+=liste[i][j]+"\n";
                    jTextArea1.setText(Ergebnisse);
                    }
                }
               
    }
    private void Start()
    {
        String []frage1 = {
				"Wie nennt man den Kern einer CPU?",
				"1: Herz",
				"2: Die",
				"3: Gehirn",
				"4: Unit",
				"2"
		};
		
                String [][] liste=  { frage1, 	
				
		};
                		
		for (int i = 0;i<1;i++)
		{
                    for (int j=0;j<5;j++)
                    {
                        
                    Ergebnisse+=liste[i][j]+"\n";
                    jTextArea1.setText(Ergebnisse);
                    }
                }   
    }     

    
    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jTextField1 = new JTextField();
        jButton1 = new JButton();
        jButton2 = new JButton();
        jButton3 = new JButton();
        jRadioButton1 = new JRadioButton();
        jRadioButton2 = new JRadioButton();
        jRadioButton3 = new JRadioButton();
        jRadioButton4 = new JRadioButton();
        jTextField2 = new JTextField();
        jScrollPane1 = new JScrollPane();
        jTextArea1 = new JTextArea();
        jMenuBar1 = new JMenuBar();
        jMenu1 = new JMenu();
        jMenuItem1 = new JMenuItem();
        jMenu2 = new JMenu();
        jMenuItem2 = new JMenuItem();
        
        ButtonGroup gruppe= new ButtonGroup();
        gruppe.add(jRadioButton1);
        gruppe.add(jRadioButton2);
        gruppe.add(jRadioButton3);
        gruppe.add(jRadioButton4);
        

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("Nächste Frage");
        jButton1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Quiz beenden");
        jButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("Quiz starten");
        jButton3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jRadioButton1.setText("Antwort 1");

        jRadioButton2.setText("Antwort 2");

        jRadioButton3.setText("Antwort 3");

        jRadioButton4.setText("Antwort 4");

        jTextField2.setEditable(false);

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        jMenu1.setText("Datei");

        jMenuItem1.setText("Beenden");
        jMenuItem1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Bearbeiten");

        jMenuItem2.setText("Antwort löschen");
        jMenu2.add(jMenuItem2);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 373, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 373, Short.MAX_VALUE))
                .addGap(47, 47, 47)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(77, 77, 77))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jRadioButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)
                            .addComponent(jRadioButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)
                            .addComponent(jRadioButton3, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)
                            .addComponent(jRadioButton4, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE))
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(33, 33, 33)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton1)
                        .addGap(18, 18, 18)
                        .addComponent(jRadioButton2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
                        .addComponent(jRadioButton3)
                        .addGap(18, 18, 18)
                        .addComponent(jRadioButton4))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(21, 21, 21)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 125, Short.MAX_VALUE)))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jButton3)
                    .addComponent(jButton1))
                .addGap(105, 105, 105))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-640)/2, (screenSize.height-400)/2, 640, 400);
    }// </editor-fold>

    private void jMenuItem1ActionPerformed(ActionEvent evt) {
System.exit(0);
    }

    private void jButton3ActionPerformed(ActionEvent evt) {
       Start();
    }

    private void jButton2ActionPerformed(ActionEvent evt) {
       System.exit(0);
    }

    public void jButton1ActionPerformed(ActionEvent evt) {
    WeiterFrage ();
    }
    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new QuizHaupt().setVisible(true);
            }
        });
    }
   
    
   
    
}
Also meine Frage: Wie krieg es hin, dass er möglichst in einer Methode bei entsprechender Betätigung des Buttons die Frage in die Area lädt. Und wie kann ich auf die Betätigung eines JRadioButtons reagieren.

Danke
 
Moin!

Die Abfrage, ob der Button benutzt wurde, soll nicht mit ActionPerformed sein, sonst müsste ich immer mehrere Methoden schreiben !
Versteh ich nicht, was du damit sagen willst. Warum solltest du mehrere Methoden schreiben müssen?
Nimm einen Zählervariable, zähle die bei jeder Betätigung des Buttons hoch und lese dann die laut aktuellem Stand des Zählers entsprechende Frage ein.

Und wie kann ich auf die Betätigung eines JRadioButtons reagieren.
Dazu würde ich dir empfehlen, mal in der API nachzugucken.

*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
Habe ich gestern bereits schon den halben Vormittag. Aber keine Möglichkeit, die für mich Sinn macht, funktioniert. Die Zählschleife kann ich auch nicht implementieren, wenn ich nicht weiß, wie der Befehl heißt, um auf das Klicken eines Buttons zu reagieren. Meine nicht die ActionPerformed.
 
Moin!
Die Zählschleife kann ich auch nicht implementieren, wenn ich nicht weiß, wie der Befehl heißt, um auf das Klicken eines Buttons zu reagieren. Meine nicht die ActionPerformed.
Hmmm.. okaaayyy. Dann nimm halt einen anderen Listener als den ActionListener. Bleibt natürlich dir überlassen. Zwar hat der ActionListener nunmal die Aufgabe, bei Buttons auf Klicks zu reagieren, aber ich weis echt net was du willst.... Vielleicht solltest du dich einfach mal mit Swing und Events ausführlicher beschäftigen...

*grüssle*
MeinerEiner
 
Ich glaub mir ist da eine Idee gekommen. Wenn du mir noch verrätst, wie ich das machen kann, dass der nur pro Button Klick einmal die Zählschleife durchläuft (=nächste Frage laden) wäre ich dankbar.
BTW: Wie sieht es denn mit den JRadioButton aus
 
Zurück