我创建了一个 jtextarea,用户可以在其中修改其内容。我想知道,如果有什么办法,用户在关闭应用程序之前是否修改了它的内容。请帮忙。
-提前致谢
问问题
7971 次
2 回答
10
您需要将DocumentListener添加到支持文本区域的Document中。
然后在侦听器的回调方法(insertUpdate()、removeUpdate()、changedUpdate())中,简单地设置一个标志,表明某事发生了变化,并在关闭应用程序之前测试该标志
公共类 MyPanel 实现 DocumentListener { 私有布尔值已更改; 公共我的面板() { JTextArea textArea = new JTextArea(); textArea.getDocument().addDocumentListener(this); ...... } ...... 公共无效插入更新(文档事件 e) { 改变=真; } 公共无效删除更新(文档事件 e) { 改变=真; } 公共无效更改更新(文档事件 e) { 改变=真; } }
于 2011-01-29T10:29:12.720 回答
2
保存 jtextarea 的值,并将此值与应用程序关闭时的 jtextarea 值进行比较。
这里的伪代码,不记得文本区域的确切语法:
String oldText = textarea.getText();
....
// not the exact method, just to point the moment of application exit
public onClose() {
String newText = textArea.getText();
// assuming oldText is not null
if (oldText.equals(newText)) {
// no changes have been done
} else {
// the value changed
}
}
于 2011-01-29T10:08:45.977 回答