首页 > 解决方案 > 在 Java 中每秒更新整数值,并使用给定数字之间的值

问题描述

我有 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 中的组件大小。我只需要一个想法,这样我就可以继续前进。

标签: javagraphicsinteger

解决方案


我不确定我是否完全理解你的问题。但是,如果您打算每秒运行一段代码 60 次,那么肯定有一种更简单的方法可以实现这一点——通过 Java 的Thread.sleep()机制。您可以使用 Java 的类实际为andRandom生成随机值: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());
            }
        }
    }

或者,您也可以使用 JavaTimerTimerTask类来达到相同的效果。


推荐阅读