我有一个不断向下滚动的背景图像,但我在上面放置了一个菜单,需要在其上放置一个键列表和音乐。但是,我似乎无法启动密钥侦听器。我的假设是这是由于 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 循环中运行背景图像,并在按下向下箭头时更改标题屏幕,但它只运行背景循环
您的程序现在有一个线程。因此,它不能一次做两件事。但是,好消息是您可以多线程程序,以便它一次执行多项操作。
我在这里回答了一个与此类似的问题:在 Eclipse 上按"运行"时(同时(启动游戏和音乐时遇到问题。
您可以将后台循环放在类中并实现Runnable
.这将允许您在后台运行该 for 循环。上面的链接显示了如何修改代码以将程序从单线程移动到多线程。