A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闾丘日月 中级黑马   /  2012-6-18 08:35  /  1849 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 闾丘日月 于 2012-6-18 08:37 编辑

在写简单的类似记事本软件的时候,因为我打算不用swing的组件来写,所以打开文件的对话框我选择的是FileDialog,这里面有两个方法比较有意思
public void setFilenameFilter (FilenameFilter filter)
将此文件对话框窗口的文件名过滤器设置为指定的过滤器。Microsoft Windows 的文件名过滤器在 Sun 的参考实现中不起作用。
protected String paramString()
返回此 FileDialog 窗口的字符串表示形式。此方法仅在进行调试的时候使用,对于不同的实现,返回的字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null。

第一个方法看名字就知道应该是让我们在打开文件对话框的时候显示哪些文件,一般如果是简单的记事本的话,我准备显示所有目录和.txt文件,但是发现无论怎么写这个FilenameFilter
它压根就不起作用,纠结检查了好久,我才确信我的代码没问题,于是我在网上搜FileDialog中如何使用setFilenameFilter,发现windows操作系统的文件过滤器是没用的,后来才看到详细信息后面写了这么一句话,我一开始查方法的时候都没怎么注意。
第二个方法更有意思,因为看到方法摘要的时候想了解窗口的字符串表现形式是个什么东西,于是不用想先打印出来瞧瞧,但是eclipse不干,它提示我没有这个方法。。。可怜的我又仔仔细细的一个个字母的比对,或者复制粘贴,发现没写错,于是我确信是eclipse出了问题,管它三七二十一,先运行再说,但是结果是
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method paramString() from the type Frame is not visible
也就是说eclipse根本不认这玩意,认真查看这个方法,发现此方法仅在进行调试的时候使用。。这句话我又不理解了,这个是指这个类的设计人员仅仅在调试的时候进行使用,还是说我们只能在调试模式下使用这个方法呢?我用debug来运行,还是同样的异常。

那么问题的核心就出来了,只能在调试模式下使用的方法到底是什么?我们能不能自己写一个只能在调试模式下使用的方法?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马