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水木清华站∶精华区