【发布时间】:2012-07-01 03:03:31
【问题描述】:
我决定检查 JRuby 和 JOGL,看看是否可以运行一些图形模拟程序。我已经设置了类路径,并且正确包含了 OpenGL 的东西。按照一些教程,他们建议使用 AWT 框架而不是 Swing 框架,因为 Swing 不支持图形加速(这正是我正在寻找的)。
但是,我不知道如何关闭 Ruby 中的 AWT 框架。当单击框架上的关闭按钮时,我有一个 WindowAdapter 会触发 Kernel.exit 事件。它看起来像这样:
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 内联,但我不知道 Ruby 中的语法是什么。
【问题讨论】: