我有一帧,其中包含不同的组件(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询问用户该怎么做。

07-24 15:05