0

我有一个 java 应用程序,每次单击按钮时都会生成 1-11 之间的随机数,我的问题是我想在每次单击按钮时对生​​成的数字求和,例如,如果我单击按钮三次然后我想要每次通过单击按钮创建的所有三个随机数的总和。对不起我的英语不好,我会非常感谢任何帮助。

这是我的代码:

  public class Game extends JFrame implements ActionListener{
private static JFrame frame;
private static JPanel p;
private static JButton b;
private static JButton choose;
private static JLabel random;
private static JLabel sumRandom;

public static void main(String[] args) {
    Game bl= new Game();
    bl.gui();


}
public void gui(){
    frame=new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800, 500);
    frame.setLocation(500, 200);
    frame.setTitle("Blackjack");


    p= new JPanel();
    p.setLayout(null);
    p.setBackground(Color.GRAY);


    b = new JButton("Start play");
    b.setBounds(450, 50, 200, 50);

    b.addActionListener(this);

    choose= new JButton("choose");
    choose.setBounds(100, 50, 200, 50);
    choose.addActionListener(this);

    random= new JLabel("");
    random.setBounds(200, 150, 200, 50);

    sumRandom= new JLabel("");
    sumRandom.setBounds(30, 150, 200, 50);
    //text.setText();
    p.add(sumRandom);
    p.add(random);
    p.add(b);
    frame.add(p);
    frame.setVisible(true);
}

public void actionPerformed(ActionEvent e){

    if(e.getSource()== b){

        p.add(choose);
        b.setEnabled(false);
    }
    if(e.getSource()== choose){
        int randomNumbers = (int )(Math.random() * 11 + 1);
        random.setText(String.valueOf(random));
        int sum= randomNumbers++;
        sumRandom.setText(String.valueOf(sum));
    }
}

}

4

5 回答 5

1

什么问题?向您的班级添加新的 int 字段。然后将 actionPerformed 方法中生成的随机数与它相加。

于 2013-10-18T19:29:09.423 回答
0

添加一个字段来汇总卡片的价值。确保你有一个机制,可能在开始播放按钮中,一旦发了新手,就可以重置该字段的值。

于 2013-10-18T19:34:38.110 回答
0

声明一个变量来保存你的总和,

public class Game extends JFrame implements ActionListener{
    private static JFrame frame;
    private static JPanel p;
    private static JButton b;
    private static JButton choose;
    private static JLabel random;
    private static JLabel sumRandom;
    private static int sumRandomNumbers; //declare sum

初始化它,

    private void sumRandomNumbersInit() { sumRandomNumbers=0; }

举报,

    public int sumRandomNumbersget() { return sumRandomNumbers; }

初始化它,

public void gui(){
    //...
    sumRandomNumbersInit();
    //...
}

将每个生成的随机数添加到 sumRandomNumbers

if(e.getSource()== choose){
    int randomNumbers = (int )(Math.random() * 11 + 1);
    random.setText(String.valueOf(random));
    int sum= randomNumbers++; //not sure what your intent is here, you assign sum the value of randomNumbers, then increment randomNumbers?
    sumRandomNumbers += randomNumbers; //add this random number to sum
    //sumRandom.setText(String.valueOf(sum)); //why?
    sumRandom.setText(String.valueOf(sumRandomNumbers)); //display sum
}
于 2013-10-18T20:20:19.177 回答
0

当生成随机数时,将 sum 变量创建为实例变量或静态变量:

sum += randomNumbers
于 2013-10-18T19:32:19.900 回答
0

问题在于

int sum= randomNumbers++;

就像斯坦尼斯拉夫说的那样,你会想要获取当前的总和并添加到它。您可以使用 int 字段和类似sum = currentSum + randomNumbers;的内容或通过解析当前打开的文本来执行此操作sumRandom

int currentSum = Integer.parseInt(sumRandom.getText());
currentSum += randomNumbers;
sumRandom.setText(String.valueOf(currentSum));

当然,后一种方法只有在你没有设置sumRandom其他任何地方的文本时才应该使用,我认为前者更干净一些。

于 2013-10-18T19:32:58.863 回答