ハワードが提案したものとはわずかに異なるバリエーション
import scala.swing._
object GUI extends SimpleGUIApplication {
def top = new Frame {
title="Test"
import javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE
peer.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE)
override def closeOperation() { showCloseDialog() }
private def showCloseDialog() {
Dialog.showConfirmation(parent = null,
title = "Exit",
message = "Are you sure you want to quit?"
) match {
case Dialog.Result.Ok => exit(0)
case _ => ()
}
}
}
}
を使用することで、イベントが scala フレームによって受信さDO_NOTHING_ON_CLOSE
れたときに何をすべきかを定義する機会が与えられます。WindowEvent.WINDOW_CLOSING
scala フレームがイベントを受け取るWINDOW_CLOSING
と、 を呼び出して反応しcloseOperation
ます。したがって、ユーザーがフレームを閉じようとしたときにダイアログを表示するにはcloseOperation
、目的の動作をオーバーライドして実装するだけで十分です。