在 Java 中每秒用给定数字之间的值更新整数值

Update integer values every second in Java with something between the given numbers

我有 2 个整数值,假设 int a = 5 和 int b = 4。

public static void run() {
    long lastTime = System.nanoTime();
    final double ns = 1000000000.0 / 60.0;//60 times per second
    double delta = 0;
    
    while(running) {
        long now = System.nanoTime();
        delta = delta + ((now-lastTime) / ns);
        lastTime = now;
        while (delta >= 1)//Make sure update is only happening 60 times a second
        {
            
            delta--;
        }
    }

我想要实现的是能够每秒将 while (delta >= 1){} 内的整数值更改为 100 到 400 之间的数字。我想创建一个采用值的绘制方法整数并更新我的 JFrame 中的组件大小。我只是需要一个想法,这样我才能继续前进。

我不确定我是否完全理解你的问题。但是,如果您的意图是每秒 运行 一段代码 60 次,那么肯定有一种更简单的方法可以实现此目的 - 通过 Java 的 Thread.sleep() 机制。您可以使用 Java 的 Random class 实际为 ab:

生成随机值
    public static void run() {
        Random random = new Random();

        while (running) {
            try {

                Thread.sleep(16); // 16 millisecond sleep; will run 60 times per second

                // Generate random number between 100 and 400
                a = (random.nextInt() % 300) + 100;
                b = (random.nextInt() % 300) + 100;

            } catch (Exception e) {
                System.out.println("Exception encountered when trying to sleep! " + e.toString());
            }
        }
    }

或者,您也可以使用 Java 的 TimerTimerTask class 来达到同样的效果。