Java 如何重置JButton?

Java 如何重置JButton?,java,swing,jbutton,Java,Swing,Jbutton,如何重置JButton并给出其他值。当我现在点击时,它会给我一个从1到6的随机值。但当我再次单击时,它不会给我另一个随机值。为什么呢?我怎样才能解决这个问题 package Opdrachten; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.*; public cl

如何重置JButton并给出其他值。当我现在点击时,它会给我一个从1到6的随机值。但当我再次单击时,它不会给我另一个随机值。为什么呢?我怎样才能解决这个问题

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

    }
}

}

你从一开始就设置了随机数

int waarde = rand.nextInt(6) + 1; //De plus een is zodat je geen 0 krijgt
但你永远不会改变它

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

你从一开始就设置了随机数

int waarde = rand.nextInt(6) + 1; //De plus een is zodat je geen 0 krijgt
但你永远不会改变它

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

int-waarde
只计算一次(在实例化类时)。您可能希望在
ActionListener
中重新计算它
int-waarde
只计算一次(当您实例化类时)。您可能想在
ActionListener
中重新计算它。您知道我如何使用两个播放器来切换它吗?例如:玩家1点击,得到6。然后玩家2可以点击得到4。一号玩家点击得到1,这就加起来了。我该怎么做呢?你总是可以分别存储每个玩家的号码,并根据谁的回合添加号码。然后在回合中使用布尔值?布尔值有效,但不能为超过2个玩家扩展
int
会更通用。我只需要两个玩家!问题已经是我该怎么说,按下按钮后开关会打开你知道我怎么用两个播放器来打开它吗?例如:玩家1点击,得到6。然后玩家2可以点击得到4。一号玩家点击得到1,这就加起来了。我该怎么做呢?你总是可以分别存储每个玩家的号码,并根据谁的回合添加号码。然后在回合中使用布尔值?布尔值有效,但不能为超过2个玩家扩展
int
会更通用。我只需要两个玩家!问题已经是我该怎么说,按下按钮后开关会转动