Java Swing – 检测文档中的更改
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java Swing – 检测文档中的更改,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1625字,纯文字阅读大概需要3分钟。
内容图文
![Java Swing – 检测文档中的更改](/upload/InfoBanner/zyjiaocheng/725/890ad8ee2ead4aff8e263b74c0b12311.jpg)
对于学校,我正在尝试使用Java的Swing重新创建Microsoft的记事本程序.我正在努力保存和打开.txt文件,我正试图找出一种方法,让程序检测何时对文档进行了更改.如果检测到更改并且用户选择打开或创建新文件,我希望程序在继续之前提示用户是否要保存更改.
我想到的是创建一个名为documentChanged的标志,该标志最初是假的,并且只要对JTextArea进行了更改,就会将其设置为true.为了检测这种变化,我想到了如下使用TextListener:
public class JNotepad implements ActionListener
{
boolean documentChanged;
JTextArea notepad;
JNotepad()
{
documentChanged = false;
notepad = new JTextArea();
notepad.addTextListener(new TextListener() {
public void textValueChanged(TextEvent te) {
documentChanged = true;
}
});
}
}
但是,我了解到Java类无法同时实现多个接口,而且我已经使用ActionListeners来实现记事本菜单栏的项目.
我的问题是,有没有办法在同一个类中同时使用TextListener和ActionListener(或任何其他侦听器)?如果没有,那么检测文件变更的最佳行动计划是什么?
解决方法:
你的这个怎么编译
notepad = new JTextArea();
notepad.addTextListener(new TextListener() {
// ....
}
因为TextListeners没有定义为使用JTextAreas而是使用TextAreas,这是一个完全不同的野兽.
您应该将DocumentListener添加到JTextArea的Document中.
notepad.getDocument().addDocumentListener(new DocumentListener() {
void insertUpdate(DocumentEvent e) {
documentChanged = true;
}
void removeUpdate(DocumentEvent e) {
documentChanged = true;
}
void changedUpdate(DocumentEvent e) {
documentChanged = true;
}
});
关于
My question is, is there any way to use both TextListeners and ActionListeners (or any other listener) simultaneously in the same class?
使用DocumentListener与程序中其他地方使用的ActionListener无关,因为它们的域彼此正交,即一个与另一个完全无关.
内容总结
以上是互联网集市为您收集整理的Java Swing – 检测文档中的更改全部内容,希望文章能够帮你解决Java Swing – 检测文档中的更改所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。