我有一个不断向下滚动的背景图像,但我在它上面放了一个菜单,需要一个密钥列表和音乐。但是我似乎无法启动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循环运行时具有背景图像,并且在按下向下箭头时标题屏幕会改变,但是它只运行背景循环
你的程序现在有一个主题。因此,它不能同时做两件事。但是,好消息是,您可以对程序进行多线程处理,以便它可以同时执行多项操作。
我在这里回答了一个类似的问题:Trouble launching game and music (at the same time) when pressing 'run' on Eclipse。
你可以把你的背景循环放在一个类中并实现Runnable
。这将允许您在后台运行for循环。上面的链接显示了如何修改代码以便将程序从单线程移动到多线程。