我决定检查 JRuby 和 JOGL,看看我是否可以运行一些图形模拟程序。我已经设置了类路径,并且正确包含了 OpenGL 的东西。按照一些教程,他们建议使用 AWT 框架而不是 Swing 框架,因为 Swing 不支持图形加速(这确实是我正在寻找的)。
但是,我不知道如何从 Ruby 中关闭AWT 框架。Kernel.exit
我有一个 WindowAdapter,当单击框架上的关闭按钮时会触发一个事件。它看起来像这样:
class Controller < WindowAdapter
def windowClosing(event)
Kernel.exit
end
end
Frame 用add_window_listener(Controller.new)
. 当我单击关闭按钮时,该事件成功触发,但它吐出以下错误:
Exception in thread "AWT-EventQueue-0" org.jruby.exceptions.RaiseException: (SystemExit) exit
从 Frame 的初始化中调用 Kernel.exit 成功退出程序。所以我不确定为什么从监听器调用它会失败。我知道在java中你可以定义一个匿名的WindowAdapter inline,但我不知道Ruby中的语法是什么。