2016-06-16 17 views
0

Wie setze ich mein JButton zurück und gebe andere Werte ein. Wenn ich jetzt klicke, bekomme ich einen zufälligen Wert von 1 bis 6. Aber wenn ich erneut klicke, bekomme ich keinen anderen zufälligen Wert. Warum das? Wie kann ich das beheben?Wie setze ich mein JButton zurück?

package Opdrachten; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 

import javax.swing.*; 

public class spel extends JPanel { 
private JButton knop; 
private boolean geklikt; 
Random rand = new Random(); 
int waarde = rand.nextInt(6) + 1; //De plus een is zodat je geen 0 krijgt 
int optel = 0; 

public spel() { 
    setBackground(Color.WHITE); 
    knop = new JButton ("Gooi!"); 
    knop.addActionListener(new KnopHandler()); 
    add(knop); 
} 

public void paintComponent(Graphics g) { 
    super.paintComponent(g); 

    if(geklikt) { 
     g.drawString("Je hebt " + waarde + " gegooid. Dit is totaal:" + optel, 100, 70); 
     optel = optel + waarde; 

     if (waarde == 1) { 
      g.drawString("Je mag 1 vakje naar voren", 100, 90); 
     } 
     if (waarde == 2) { 
      g.drawString("Je mag 2 vakjes naar voren", 100, 90); 
     } 
     if (waarde == 3) { 
      g.drawString("Je mag 3 vakjes naar voren", 100, 90); 
     } 
     if (waarde == 4) { 
      g.drawString("Je mag 4 vakjes naar voren", 100, 90); 
     } 
     if (waarde == 5) { 
      g.drawString("Je mag 5 vakjes naar voren", 100, 90); 
     } 
     if (waarde == 6) { 
      g.drawString("Je mag 6 vakjes naar voren", 100, 90); 
     } 
    } 


} 

class KnopHandler implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     geklikt = true; 
     repaint(); 

    } 
} 

} 
+1

'int waarde' wird nur einmal ausgewertet werden (wenn Sie Ihre Klasse instanziiert). Vielleicht möchten Sie es in Ihrem 'ActionListener' neu berechnen. – Berger

Antwort

2

Sie legen die Zufallszahl am Anfang

int waarde = rand.nextInt(6) + 1; //De plus een is zodat je geen 0 krijgt 

Aber Sie jemals es nicht ändern.

class KnopHandler implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     geklikt = true; 
     waarde = rand.nextInt(6) + 1; //get another random number 
     repaint(); 
    } 
} 
+0

Weißt du, wie ich das mit zwei Spielern ändern könnte? Zum Beispiel: Spieler 1 klickt, bekommt 6. Dann kann Spieler 2 klicken und bekommt 4. Spieler klickt ein und bekommt 1 und das zählt zusammen. Wie mache ich das? – Lucafraser

+0

Sie können die Nummer jedes Spielers immer getrennt speichern und hinzufügen, je nachdem, wer an der Reihe ist. – Arc676

+0

Und verwenden Sie einen booleschen für die Wende? – Lucafraser

0
class KnopHandler implements ActionListener { 
public void actionPerformed(ActionEvent e) { 
    geklikt = true; 
    waarde = rand.nextInt(6) + 1; //get another random number 
    //button.setText(); //name of button 
    repaint(); 
} 
} 
Verwandte Themen