如何在每次JButton点击后增加变量?

时间:2016-11-11 15:44:16

标签: java button netbeans

我正在制作一个模拟足球比赛的计划。我有一个按钮,当我点击它时,两个团队中的一个随机会给出一个点。因此,一次点击后,得分可以是1-0或0-1,并且在两次cliks之后2-0,0-2或1-1。

问题在于,每次点击,都是0-1或1-0。所以得分并不依赖。

我知道原因是我在执行的'操作中说int homescore = 0int awayscore = 0'码。在0-0之后,它随机给出一支球队1分。因此,当我第二次点击按钮时,分数将再次从0-0开始,而不是新分数。

有人知道如何解决这个问题吗?也许这很容易,但我没有经常编程。

这是我正在谈论的代码的一部分:

private void resultbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    Random dice = new Random();
    int number;
    int homescore = 0; 
    int awayscore = 0;
    for (int counter =1; counter<=1; counter++){
        number = dice.nextInt(2);                   // Creates a 0 or a 1
        if (number == 1){                           // If 1: Point to home team
            homescore = ++homescore;}             
        else {                                      // If 0: Point to away team
            awayscore = ++awayscore;
                    }
        }


    homescorelabel.setText(String.valueOf(homescore));
    awayscorelabel.setText(String.valueOf(awayscore));

3 个答案:

答案 0 :(得分:0)

将分数放入主要方法/类中。 此外,不需要for循环,因为它只运行一次。

答案 1 :(得分:0)

overflow: auto

您每次都重新定义它 - &gt;尝试摆脱h方法。

答案 2 :(得分:0)

正如您所解释的那样,

int homescore = 0; 
int awayscore = 0;

在您执行的操作中,将始终从零开始递增一个值。您需要做的是获取现有值并向其增加一个值。这有两种简单的方法。

  1. 设置一个字段变量来存储主场比分和远距离比分并从中递增。

    class GameClass { 
        private int homescore = 0;
        private int awayscore = 0;
    
        private void resultbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                              
            Random dice = new Random();
            int number;
            for (int counter =1; counter<=1; counter++){
                number = dice.nextInt(2);                   // Creates a 0 or a 1
                if (number == 1){                           // If 1: Point to home team
                    homescore = ++homescore;
                } else {                                      // If 0: Point to away team
                    awayscore = ++awayscore;
                }
            }
        homescorelabel.setText(String.valueOf(homescore));
        awayscorelabel.setText(String.valueOf(awayscore));
     }
    }
    
  2. 请注意,我刚刚在这里展示了这个类(GameClass)。当您递增其中一个分数时,您将增加该字段,以便在每次单击按钮时保留该分数。

    1. 从标签中获取当前分数。

      private void resultbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                              
          Random dice = new Random();
          int number;
          int homescore = Integer.parseInt(homescorelabel.getText());
          int awayscore = Integer.parseInt(awayscorelabel.getText());
          for (int counter =1; counter<=1; counter++){
              number = dice.nextInt(2);                   // Creates a 0 or a 1
              if (number == 1){                           // If 1: Point to home team
                  homescore = ++homescore;
              } else {                                      // If 0: Point to away team
                  awayscore = ++awayscore;
              }
          }
          homescorelabel.setText(String.valueOf(homescore));
          awayscorelabel.setText(String.valueOf(awayscore));
      }