Немного отличается от того, что предложил Говард
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 _ => ()
}
}
}
}
Используя DO_NOTHING_ON_CLOSE
, вы получаете возможность определить, что должно быть сделано, когда фрейм scala получает событие WindowEvent.WINDOW_CLOSING
. Когда фрейм scala получает событие WINDOW_CLOSING
, он реагирует вызовом closeOperation
. Следовательно, для отображения диалога, когда пользователь пытается закрыть кадр, достаточно переопределить closeOperation
и реализовать желаемое поведение.