一个很奇怪的问题,关于文件选择器的,谁帮忙解答一下……

hackerain 2011-09-11 02:02:35
我的文件选择对话框是这样定义的:

JFileChooser jfc=new JFileChooser(new File(".",""));

然后设置了一个文件过滤器:

jfc.setFileFilter(new PNGfilter());

文件过滤器类是如下定义的:

private class PNGfilter extends javax.swing.filechooser.FileFilter
{
public PNGfilter()
{

}
public boolean accept(File file)
{
if(file.toString().toLowerCase().endsWith(".png")||
file.isDirectory())
{
return true;
}
else
return false;
}
public String getDescription()
{
return "*.PNG(PNG图像)";
}
}


运行之后,奇怪的问题就出现了:每次运行,有的时候会正常显示文件选择对话框,没有什么错误;可是有时候,除了显示文件选择对话框外,还有红色的那一行报空指针的错误,请问谁能解答一下,这个是怎么回事?
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2011-09-11
  • 打赏
  • 举报
回复
试试看用SwingUtilities.invokeLater能不能改善
for example
SwingUtilities.invokeLater(new Runnable(){
public void run() {
...
}
});
qybao 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hackerain 的回复:]
哦,原来这是jdk的一个bug啊!http://bugs.sun.com/view_bug.do;jsessionid=ba24c23e8dc7944129c6b5c658b9?bug_id=6756220
[/Quote]
这样啊,线程协调没做好。
hackerain 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qybao 的回复:]

JFileChooser jfc=new JFileChooser(new File(".")); //have a try
[/Quote]

问题照旧……
hackerain 2011-09-11
  • 打赏
  • 举报
回复
qybao 2011-09-11
  • 打赏
  • 举报
回复
JFileChooser jfc=new JFileChooser(new File(".")); //have a try
hackerain 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qybao 的回复:]

if(file.toString().toLowerCase().endsWith(".png")||
如果file是null的话就报空指针异常了

have a try
Java code
public boolean accept(File file)
{
if (file == null) reurn false;
return (file.toString().toLo……
[/Quote]

而且按你说的改了一下,问题依然存在,还是时有时无,报的错是这样的:
Exception in thread "Basic L&F File Loading Thread" java.lang.NullPointerException
是某个线程出了错?
hackerain 2011-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qybao 的回复:]

if(file.toString().toLowerCase().endsWith(".png")||
如果file是null的话就报空指针异常了

have a try
Java code
public boolean accept(File file)
{
if (file == null) reurn false;
return (file.toString().toLo……
[/Quote]
file在什么情况下就是null了呢?为什么有的时候会报null的错,有的时候不报呢?
qybao 2011-09-11
  • 打赏
  • 举报
回复
if(file.toString().toLowerCase().endsWith(".png")||
如果file是null的话就报空指针异常了

have a try
public boolean accept(File file)
{
if (file == null) reurn false;
return (file.toString().toLowerCase().endsWith(".png")|| file.isDirectory());
}

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧