我有一帧,其中包含不同的组件(jtextField,jcomboBox,jspinner等)
每当用户关闭框架时,如果用户更改了某些内容但未保存,我希望收到一条警告消息“您的数据尚未保存”。
除了保留一个脏布尔变量并对其进行更新之外,是否还有其他替代方法可以执行此操作。
就像在jQuery(我从网络搜索)
$(document).ready(function() {
$('input:not(:button,:submit),textarea,select').change(function () {
warnMessage = "You have unsaved changes on this page!";
});
$('input:submit').click(function(e) {
warnMessage = null;
});
});
提前致谢
最佳答案
这是在Swing中如何执行此操作的概述:
在附加到组件模型的侦听器中,在更改模型时设置boolean
;例如在DocumentListener
中,设置documentChanged = true
。
添加WindowListener
;在windowClosing()
处理程序中,检查documentChanged
。
如果有更改,请使用JOptionPane
询问用户该怎么做。