我目前正在编写一个类似于砖块破坏者的游戏,并且需要知道如何让我的程序等待特定的函数被调用。
我需要暂停程序,直到在按钮之间做出决定。例如,游戏启动,用户可以选择他在游戏中想要的颜色。因此,游戏暂停,直到他做出选择并且他很高兴,然后程序需要恢复到不同的阶段。
如果您使用的是 Swing 组件,则可以向按钮添加一个,并在被覆盖的方法ActionListener
中包含需要执行的逻辑。actionPerformed
另请参阅如何编写动作侦听器。
我需要暂停程序,直到在按钮之间做出决定。例如,游戏启动,用户可以选择他在游戏中想要的颜色。因此,游戏暂停,直到他做出选择并且他很高兴,然后程序需要恢复到不同的阶段。
有几种方法可以解决这个问题,但我不打算在这里深入探讨并发编程的复杂性。你可以找到其他资源。话虽如此,我想说的一条评论是,您既不应该执行长时间运行的任务,也不应该在事件调度线程 (EDT)中休眠,因为这样做会导致 UI 变得无响应(即“冻结”)。
您处于 GUI 编程领域,该领域基本上使用事件(事件驱动)
在某种程度上,你问了错误的问题。
在赛事驾驶系统中,您总是在等待。当某些事件发生时,您继续工作。
在您的情况下,您应该考虑按下按钮时该怎么做。
这是您将需要的结构类型的基本概述。
import java.swing.*
public class Breaker
{
private
Listener listener;
JButton b1;
public Breaker()
{
listener = new Listener();
b1 = new JButton("b1");
b1.addActionListener(listener);
}
class Listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
Component theEventer = (Component) e.getSource();
if (theEventer == b1)
{
You're stuff here
}
}
public static void main (String[] args)
{
new Breaker();
}
}