0

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
4

1 に答える 1