java - 如何在单击按钮时增加变量?

标签 java arrays swing jbutton increment

我正在尝试为学校制作一款类似小游戏的东西。它旨在帮助您了解时间表。我想要的是表的乘数每次都是随机的(5x8,然后 5x3,然后 5x9 等)。

我已经通过数组控制了数字的生成,如下所示

public static Integer[] generateNumbers()
{
    Integer[] arr = new Integer[12];

    for(int j = 0; j < arr.length; j++)
    {
        arr[j] = j+1;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.asList(arr));
    return arr;
}

如何才能使每次用户单击按钮时,选择数组中的下一个数字,同时记住该按钮是在另一个类中声明的,并且 ActionListener 也在其他地方声明的?

哦,数组在类范围内可用,因为函数声明如下:

public static Integer[] arr = generateNumbers();

最佳答案

主题回答

public class UnicornFrame extends JFrame {

     private Integer[] poneyArr = MyClassThatGeneratesNumbers.generateNumbers();
     private int poneyCounter = 0;
     private JButton poneyButton;

     public void poneyInit() {
         System.out.println("Unicorns are poney magical friends!");
         poneyButton = new JButton("OMG! Ponies!");
         // Java 8 Lambdas! Yey!
         poneyButton.addActionListener(e -> { 
             if (poneyCounter >= poneyArr.length) {
                  poneyArray = MyClassThatGeneratesNumbers.generateNumbers();
                  poneyCounter = 0;      
             }         
             Integer selected = poneyArr[poneyCounter++];   
             System.out.println("OMG! I have selected " + selected);
         });

         // other stuff

         add(poneyButton, BorderLayout.CENTER);
     }
}

关于java - 如何在单击按钮时增加变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22785202/

相关文章:

javascript 对二维数组进行排序并删除一些元素

Java如何将字符串转换为整数名称

java - 从 alfresco 存储库加载 FTL 模板文件

java - eclipse无法导入apache tika src

php - 将平面数组中的每个整数乘以 60

c# - 如何查找镜像重复项的所有实例?

java - 强制 java 应用程序成为焦点窗口

java - 使用 JButton 通过 addActionListener 处理 JFrame

java - 如何在将 JComponent 实例化添加到 JContainer 时添加 ActionListener?

java - ENOENT (No such file or directory) 当那里有文件时