lucafj2j282j
lucafj2j282j

Reputation: 891

How do I reset my JButton?

How do I reset my JButton and give other values. When I click now it gives me a random value from 1 to 6. But when I click again it doesn't give me another random value. Why is that? How can I fix this?

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();

    }
}

}

Upvotes: 0

Views: 440

Answers (2)

Francesco Taioli
Francesco Taioli

Reputation: 2856

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();
}
}

Upvotes: 0

Arc676
Arc676

Reputation: 4465

You set the random number at the very beginning

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

But you don't ever change it.

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

Upvotes: 2

Related Questions