BBS水木清华站∶精华区

发信人: shah (rt), 信区: Java        
 
我想使一个JEditorPane显示RTF文件内容, 
用Swing中的RTFEditorKit作为JEditorPane 
的EditorKit,可是在调用RTFEditorKit的 
read()方法读入一个RTF文件时失败, 
DEBUG发现抛出了IO异常:NullFilePointer, 
跟踪发现read()方法调用了RTFReader的readFromStream(), 
通过查看源代码发现在RTFReader的setCharacterSet()方法 
(我估计是初始化RTF关键字的)内如下语句抛出了该异常: 
  ...... 
  InputStream stream=this.getResourceAsStream("charsets/ansi.txt"); 
  //read from stream 抛出异常 
  // 
  // 
是不是这儿出了问题(我用的是Application,可读本机文件吧)? 
还是哪儿有东西我没考虑到。 
 
请有这方面经验的大侠快出手。 
 
PS. 我用的Cafe3.0为什么调试时看不到Variable的值, 
只能看到类内静态成员的值,总提示说 
Expression cannot calculated,是不是因为试用版? 
 
 
 
发信人: KHP (人之初), 信区: Java        
 
 
呵呵,原因是没找到 ansi.txt 这个文件,这个文件应该放在 swing 的 
类库中,javax.swing.text.rtf.charsets/ansi.txt。 
 
也许你用 JDK 从命令行运行就没问题了,可能是Cafe带的JVM和JDK对路径的解释 
不一致造成的。 
 
【 在 shah (rt) 的大作中提到: 】 
 我想使一个JEditorPane显示RTF文件内容, 
 用Swing中的RTFEditorKit作为JEditorPane 
 的EditorKit,可是在调用RTFEditorKit的 
 read()方法读入一个RTF文件时失败, 
 DEBUG发现抛出了IO异常:NullFilePointer, 
 跟踪发现read()方法调用了RTFReader的readFromStream(), 
 通过查看源代码发现在RTFReader的setCharacterSet()方法 
 (我估计是初始化RTF关键字的)内如下语句抛出了该异常: 
   ...... 
   InputStream stream=this.getResourceAsStream("charsets/ansi.txt"); 
   //read from stream 抛出异常 
   // 
   // 
 是不是这儿出了问题(我用的是Application,可读本机文件吧)? 
 还是哪儿有东西我没考虑到。 
 请有这方面经验的大侠快出手。 
 PS. 我用的Cafe3.0为什么调试时看不到Variable的值, 
 只能看到类内静态成员的值,总提示说 
 Expression cannot calculated,是不是因为试用版? 
 
 
 
 
发信人: shah (rt), 信区: Java        
 
我当时也怀疑过这个问题,可是检查发现 
C:\Visual Cafe\jfc\swing\text\rtf\charsets\下是有 
ansi.txt文件的,我的机器上同时装了JDK1.2和Cafe3.0, 
路径都搞糊涂了,比如JDK的Demo里import的javax.*在 
Cafe里就不行,要改成com.sun.java.*, 
 
我在命令行下运行,结果是一样,只不过那一大堆出错显示在 
屏幕上了,我也觉得是路径的问题,可是应该怎么设呢? 
 
 
【 在 KHP (人之初) 的大作中提到: 】 
 呵呵,原因是没找到 ansi.txt 这个文件,这个文件应该放在 swing 的 
 类库中,javax.swing.text.rtf.charsets/ansi.txt 
but how can I  put it? 
 
 也许你用 JDK 从命令行运行就没问题了,可能是Cafe带的JVM和JDK对路径的解释 
 不一致造成的。 
 
 
 
 
发信人: jjhwang (小受), 信区: Java        
 
Visual cafe里面可以设自己的VM环境的。 
设好运行绝对没问题! 
【 在 KHP (人之初) 的大作中提到: 】 
 呵呵,原因是没找到 ansi.txt 这个文件,这个文件应该放在 swing 的 
 类库中,javax.swing.text.rtf.charsets/ansi.txt。 
 也许你用 JDK 从命令行运行就没问题了,可能是Cafe带的JVM和JDK对路径的解释 
 不一致造成的。 
 
 
 
 

BBS水木清华站∶精华区