java jfilechooser报错_java – JFileChooser失败

在我的代码中,我有这个代码

void selectRoot() {

JFileChooser ch = new JFileChooser();

ch.showOpenDialog((JFrame)this);

}

抛出异常:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

at java.io.Win32FileSystem.normalize(Win32FileSystem.java:164)

at java.io.Win32FileSystem.getUserPath(Win32FileSystem.java:296)

at java.io.Win32FileSystem.resolve(Win32FileSystem.java:312)

at java.io.File.getAbsolutePath(File.java:501)

at sun.awt.shell.Win32ShellFolder2.(Win32ShellFolder2.java:291)

at sun.awt.shell.Win32ShellFolderManager2.createShellFolderFromRelativePIDL(Win32ShellFolderManager2.java:66)

at sun.awt.shell.Win32ShellFolderManager2.createShellFolder(Win32ShellFolderManager2.java:56)

at sun.awt.shell.Win32ShellFolderManager2.getRecent(Win32ShellFolderManager2.java:114)

at sun.awt.shell.Win32ShellFolderManager2.get(Win32ShellFolderManager2.java:251)

at sun.awt.shell.ShellFolder.get(ShellFolder.java:227)

at sun.swing.WindowsPlacesBar.(WindowsPlacesBar.java:64)

at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.updateUseShellFolder(WindowsFileChooserUI.java:505)

at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installComponents(WindowsFileChooserUI.java:196)

at javax.swing.plaf.basic.BasicFileChooserUI.installUI(BasicFileChooserUI.java:136)

at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installUI(WindowsFileChooserUI.java:129)

at javax.swing.JComponent.setUI(JComponent.java:673)

at javax.swing.JFileChooser.updateUI(JFileChooser.java:1763)

at javax.swing.JFileChooser.setup(JFileChooser.java:360)

at javax.swing.JFileChooser.(JFileChooser.java:333)

at javax.swing.JFileChooser.(JFileChooser.java:286)

at my.pack.Main.selectRoot(Main.java:184)

查看java.io.Win32FileSystem.normalize()的源代码,(当前)路径似乎为null:

public String normalize(String path) {

int n = path.length(); // Line: 164

char slash = this.slash;

char altSlash = this.altSlash;

如果我从程序中的另一个点运行selectRoot()它运行良好…

更新

对于编写陷阱错误书的人来说,这真是一个很好的人!

在我的原始代码中有一个JTextField,它保存实际路径并以这种方式初始化:

root = new JTextField();

root.setToolTipText("Root folder");

root.setText(System.clearProperty("user.dir"));

System.clearProperty()清除系统属性(为null)并返回旧值(arrrghhhhhhh). clearProperty()可能从自动完成中滑入.

谢谢你们.会给你一些票……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值