当我运行我的代码时,有时,每当我使用jfilechooser时都会弹出此错误。我使用过的imagefilter和utils来自here。我在网上搜索了这个,但我只看到像降级java这样的修复。
我的java是build 1.8.0_25-b18
,目前正在使用netbeans 8.0.2
作为IDE
。
Exception in thread "Basic L&F File Loading Thread" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1954)
at datacomparison.Utils.getName(Utils.java:36)
at datacomparison.ImageFilter.accept(ImageFilter.java:27)
at javax.swing.JFileChooser.accept(JFileChooser.java:1650)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run0(BasicDirectoryModel.java:252)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run(BasicDirectoryModel.java:228)
答案 0 :(得分:1)
因此在Util.getName()方法中(在您链接的代码中),如果文件名中没有句点,则lastIndexOf()返回-1,StringIndexOutOfBounds将出现在下一行中。我不知道这是不是你的情况发生了什么,没有足够的信息,但看起来可能。编写该代码的人没有计划文件名没有句点的情况。
下次,将所有必要的代码放入您的问题,而不是其他地方的代码链接。