java - 如何重置我的 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 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();
    }
}

关于java - 如何重置我的 JButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859197/

相关文章:

java - 如何为 esri Geometry-api 构建 jar 文件

java - 两个类之间的事件处理

使用 HashBasedTable 作为累加器的 Guava ImmutableTable 的 Java 8 收集器给出 IllegalAccessError

java - Android 谷歌存储库 - 键盘

Java LibGDX - 在加载屏幕之前黑屏出现很长一段时间

java - 将自身设置为 JFrame 的默认按钮的 JButton 子类

java - 在java中持续跟踪时间

java - Swing 布局对容器的依赖

java - 计算按钮不起作用

java - 其他类中的 JButton 操作