gpt4 book ai didi

java - 从 Action 监听器中开始游戏

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:20 24 4
gpt4 key购买 nike

我有一个用 Java 制作的 Blackjack 游戏,我想通过单击一个按钮来表示游戏开始。我所有的 Action 监听器都工作得很好,但问题在于,如果游戏不在 actionPerformed 方法中完全运行,我无法弄清楚如何开始游戏。显然,在 actionPerformed 方法中持续运行的函数将有效地禁用我的 GUI 的其余部分。这是一个代码片段....

go.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// START GAME SOMEHOW but must run outside of action listener
}
});

最佳答案

Obviously, a function continuously running within the actionPerformed method will effectively disable the rest of my GUI.

这是一个有效的观察结果,表明您已经理解了使用 Swing 时的基本规则。

您的游戏很可能是事件驱动的(如果我错了请纠正我)所以按钮执行的操作应该只是将程序设置为新状态,等待进一步的事件。这应该不会很耗时,通常由 EDT 直接完成。

当然,如果你想做一个花哨的开始新游戏的动画,那需要在一个单独的线程中执行,在这种情况下你只需从内部启动动画线程(不过我建议使用 SwingWorker) actionPerformed 方法,然后返回。

在代码中,我想它看起来像这样:

go.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Remove the menu components
someJPanel.removeAll();

// Show the game table
someJPanel.add(new GamePanel());

someJPanel.revalidate();
someJPanel.repaint();

// done. Wait for further user actions.
}
});

关于java - 从 Action 监听器中开始游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com