4

我创建了一个 jtextarea,用户可以在其中修改其内容。我想知道,如果有什么办法,用户在关闭应用程序之前是否修改了它的内容。请帮忙。
-提前致谢

4

2 回答 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 回答