JrubyでJFrameのデフォルトのクローズアクションをオーバーライドする正しい方法は何ですか? 次のことを試しましたが、ウィンドウ装飾の閉じるボタンをクリックしてウィンドウを閉じることしかできません。
JFrame の初期化メソッド
def initialize *args
super("Attendance")
self.setDefaultCloseOperation(javax.swing.JFrame::DO_NOTHING_ON_CLOSE)
self.add_window_listener(CloseHelper.new)
self.minimum_width = FRAME_WIDTH
self.minimum_height = FRAME_HEIGHT
base_font = Font.new("Lucida Grande", 0, 14)
set_up_components
self.set_visible true
self.pack
end
WindowAdapter クラス
class CloseHelper < WindowAdapter
def window_closing event
signouttime=DateTime.now
cdate=correct_date(signouttime,nil)
if cdate
AttendanceModel.fetch("update visitors set signedout=? where datediff(day,signedin,?)=0 and signedout is null",signouttime,signouttime).update
showerror("Message","Signed out all visitors",nil,nil)
end
java.lang.System.exit(0)
end
end