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