LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1563|回复: 1

请教一个在做java GUI编程时遇到的问题

[复制链接]
发表于 2008-4-18 14:02:40 | 显示全部楼层 |阅读模式
小弟最近作做了一个简单的文本编辑器的练习,有个TextArea
并且添加了事件addTextListener()
基本功能是在打开一个文本文件后如果该文件有内容就把内容添加到TextArea中
如果TextArea中的文本发生了改变,在点退出的时候就提示“内容改变是否保存”

方法如下:
  1.     public void myReader() {
  2.         try {
  3.             BufferedReader br = new BufferedReader(new FileReader(fileName));
  4.             String str;
  5.             while ((str = br.readLine()) != null) {
  6.                 text1.append(str + "\n");
  7.             }
  8.             br.close();
  9.         } catch (IOException e) {
  10.             e.printStackTrace();
  11.         }
  12.         isChanged = false;
  13.     }
  14.     public void textValueChanged(TextEvent e) {
  15.         if (isChanged == false) isChanged = true;
  16.     }
复制代码

我在MyReader()方法的最后把isChanged赋值为false
就是把文件内容弄到TextArea中后改变变量的值的,可是不知道为什么,事件总是在最后发生……
 楼主| 发表于 2008-4-18 14:13:04 | 显示全部楼层
我在这个方法里分别加上System.out.println(isChanged);
发现不管是先调用myReader()还是先 text1.addTextListener(this);
都是myReader()方法里的System.out.println(isChanged);先执行
然后才执行textValueChanged()方法里面的System.out.println(isChanged);而且文本有几行,事件就会触发几次

请问,我应该怎么做,才能让文件里的内容都弄到TextArea里然后让isChanged= false??
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表