当前位置: 首页 > 知识库问答 >
问题:

是否有一个for循环在后台运行,另一个任务在前端运行?

侯池暝
2023-03-14

我有一个背景图像滚动不断,但我放置了一个菜单在它上面,需要一个按键和音乐在上面。但是,我似乎无法启动keylistener。我的假设是,这是由于for循环,它在到达它的终点之前重新设置了自己。

//Backloop is called before keyPressed in the main class
public void keyPressed(KeyEvent VK_DOWN) {
    down();
}
public void backloop() throws InterruptedException {
    for(int x = 1; x > -4320; x--) {
        if(x == -4000)
        {
            x = 0;
            rolling.setLocation(0, x);
        }else {
            rolling.setLocation(0, x);
            Thread.sleep(50);
        }

    }
}

public void down() {
    if(title = false)
    {
        panel.remove(title1);
        panel.add(title2);
        title = true;
    }else {
        panel.remove(title2);
        panel.add(title1);
        title = false;
    }
}

我希望输出在for循环中运行背景图像,当按下向下箭头时,标题屏幕会改变,但它只运行背景循环

共有1个答案

冯嘉荣
2023-03-14

您的程序现在只有一个线程。因此,它不能同时做两件事。不过,好消息是,您可以多线程您的程序,以便它将做多个事情一次。

我在这里回答了一个类似的问题:在Eclipse上按下“运行”时,无法同时启动游戏和音乐。

您可以将后台循环放在类中并实现runnable。这将允许您在后台运行for循环。上面的链接显示了如何修改代码,以便将程序从单线程转移到多线程。

 类似资料:
  • 问题内容: 我有以下使用类的课程。所以我想做的是,在运行cp1实例处理方法的同时,我要并行运行。 但是,我要按顺序cp1,所以我要它运行并完成,如果cp2没有完成或失败,那就很好。如果确实失败,我想加入结果。该示例中未返回任何内容,但我想返回结果。 为此,应该使用TaskExecutor吗?还是线程? 我只希望cp2与cp1并行运行。或者,如果我添加更多内容,例如说cp3,我希望它也可以与cp1并

  • 我正在从事一个spring boot项目,以自动化与gradle的集成测试。我最近开始在一家新企业工作,我的同事们按如下方式运行集成测试:在构建中。gradle文件有一个集成测试任务 启动任务后,应用程序开始在指定端口运行,然后打开postman,导入集合并运行测试。 我的工作是找到一种方法来跳过额外的点击,即自动运行邮递员集合。第一个想法是使用postman-run gradle插件,但由于企业

  • 我在gradle项目中添加了一个任务: 现在,任务总是在任务之前运行。这很好,因为构建任务包含许多步骤。现在我想显式禁用其中一个包含的任务。

  • 我有工人班 还有一个窗口类,它使用tkinter 但是,即使长任务()是在一个单独的线程中运行,我的GUI冻结-为什么? 我的目标是更新窗口中的一个进度条,而长任务()正在运行。长任务()内部更新一个数字,范围从0到100。 问题:在longTask()运行时,如何实现这一点并防止GUI冻结? 注意:显然线程不是在我调用t.start()时启动的,而是在我通过t=线程启动线程时启动的。线程...

  • 问题内容: 我想从Java代码运行另一个应用程序。 进程已启动,但在后台运行。如何使其在前台运行? 问题答案: 您应该告诉cmd.exe您希望它在新窗口中打开:

  • 我需要12次外循环,每个外循环1次内循环 例如: 等 但现在我的内循环在第一次迭代的外循环上运行。 请帮助我如何使用for循环执行此操作。