我目前正在开发一个带有遗传算法的项目。它工作正常,我得到了我想要的结果,所以这方面没有问题。我在控制台中显示了所有信息,因此我决定创建一个 GUI 来改进软件。
我有两个框架。一个是选择框架,您可以在其中选择运行选项。另一个是带有 textArea 的框架。第二帧的目的是在其中显示有关运行的信息。对于这两个框架,我都使用了 MVC 设计模式。它工作正常,我已经为 GUI 运行了一些测试,一切都正常显示。
现在的问题是当我尝试整合这两个方面时。我主要启动我的第一帧。然后它切换到第二帧并在信息完成并且用户单击“确定”按钮时运行遗传算法。我对信息进行验证,并让按钮启用为假,直到它正确为止;)。理论上,假设将第二帧显示为空,然后启动 GA,然后在使用 MVC 模型运行的帧中输入文本。
当我单击按钮时会出现问题,第二帧显示部分。我的意思是我有带有标题和红色关闭按钮的框架,但里面什么都没有。我可以用鼠标移动框架,但如果我点击红色的关闭按钮,没有任何附加内容,所以我猜框架有点冻结。Ga 在此期间运行完美。在 GA 运行结束时,帧的其余部分出现,其中包含应输入的所有信息。所以 Mvc 模型运行良好。它只是不正常显示的框架。
我使用以下代码:
Vue2 vrga = new VueLorsRunGa(); //create the 2nd frame
vue1.dispose(); //destroy the first one
//code to run the GA
我不使用 GUI,所以也许我做错了,所以我没有释放需要的东西。
如果我们按顺序执行,则 vue2 应该在 ga 代码执行之前完全启动。但是我在一篇文章中读到 GUI 的东西是在一个特殊的线程中管理的。所以它不会被 GA 冻结...... GA 有它的特定线程,但我没有为 GUI 做任何事情。
因此,如果有人知道我可能错在哪里或如何设法抑制我的错误,那就太好了:)
谢谢你的帮助
斯欣