提问人:devor110 提问时间:5/2/2022 更新时间:5/2/2022 访问量:38
Java Swing - 将事件从子级传递到父级,而不将父级存储在子级中
Java Swing - Passing an Event from child to parent without storing parent in child
问:
我正在用 Java Swing 制作一个游戏,我遇到了一个问题,我需要向我的 UI 类(包含一个实例)发出信号,表明玩家已经升级并且需要显示适当的 UI。MainWindow
GameLogic
正如我上面提到的,MainWindow 包含一个实例,顾名思义,它负责更新和维护游戏。当玩家升级时,我想调用一个可以处理的事件。我怎样才能做到这一点?GameLogic
MainWindow
我想避免存储MainWindow实例的引用,因为当我使用Gson反序列化保存时,这可能会导致问题。我尝试简单地扩展 ActionEvent,但我认为这不是一个正确的路径,因为我需要在 as 中调用 'sconstructor,但需要一个非 null,它不能是因为它正在构造,所以尚不可用,但没有其他实例在那里使用是有意义的。GameLogic
GameLogic
ActionEvent
GameLogic
super
ActionEvent
source
GameLogic
this
Object
我想到的另一种方法是只有一个 within 的实例,但我如何在不存储它的引用的情况下设置它的 actionListener?ActionEvent
GameLogic
MainWindow
在这一点上,我意识到这可能已经做了很多,所以最好求助于久经考验的解决方案,所以我在这里。我将不胜感激一般建议或指向探索和解决/解释此特定问题的网站的链接。
答: 暂无答案
评论
,MainWindow
包含一个GameLogic
实例那么,当您创建该实例时,为什么不将其添加为一个呢?this
ActionListener
GameLogic
ActionEvent
this
GameLogic
gameLogic.getFooButton().addActionListener(this);
event
Observer
Observable