我正在编写一个应用程序(生命游戏的实现)并希望它按如下方式工作:
实现这一目标的最佳方法是什么?
我目前的方法是从包含main方法的单独类控制应用程序,该方法应该存储设置并处理两个JFrame的显示/隐藏,但我遇到了一些问题:我想要监听器设置框中的“开始”按钮向主要方法发出信号,表示是时候存储所选设置,隐藏此框架并显示GoL框架。但是,我不知道如何将这些信息传递给main方法,因为我无法从“settings”框架内访问其类的范围。我可以从main方法访问“settings”框架,因此获取设置并关闭框架不是问题,问题是要知道何时来执行此操作。
//In the class "SettingsFrame"
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//WHAT TO DO HERE?
}
});
我有点像初学者,所以也许我的尝试方法存在根本性的错误。在不使用JDialog的情况下实现上述功能的最优雅方法是什么?
(我已经查看了SO并发现了这个答案Passing values between JFrames。但是,附带的示例使用了一个JDialog,我猜测它会自动向调用方法发出信号,表示已按下“OK”按钮。我我很想知道如何实现这一目标。)
答案 0 :(得分:2)
您需要将main方法的回调注册到设置框架。按下“开始”按钮时,动作侦听器应关闭窗口,并调用回调,传递在设置框中输入的设置。然后回调方法将打开生命游戏框架。