我正在使用 Java swing 为我的 Java 游戏制作关卡编辑器。
其中一项功能是有一个可切换按钮来打开和关闭游戏以测试关卡。游戏在 jpanel 中运行,然后再次单击按钮取消切换,它会关闭游戏。
我只希望用户能够在游戏未运行时更改摇摆应用程序中的内容或按下按钮,当游戏运行时,我将焦点设置到游戏组件。在挥杆应用程序中,他们应该能够按下的唯一按钮是用于关闭游戏的切换按钮。
问题是,我想不出一个好的方法来做到这一点。使用递归函数,我可以轻松循环并找到所有组件并执行 setEnabled(false),但是当游戏重新关闭时,它无法知道之前的启用状态是什么(以及其他问题,例如其他组件响应setEnabled 在其他组件上被调用)
我认为我真正需要的只是一种在游戏运行时直接“杀死”用户输入到 Swing 应用程序的方法。但最好是再次单击切换按钮以返回应用程序的状态,并且在 Jpanel 中运行的游戏需要能够集中注意力......
有没有办法在没有大量“组织”代码来管理 Swing 应用程序中的组件的情况下做这种事情?