小编knt*_*knt的帖子

Java中的getPath(),getAbsolutePath()和getCanonicalPath()有什么区别?

什么之间的区别getPath(),getAbsolutePath()以及getCanonicalPath()在Java中?

我什么时候使用每一个?

java

567
推荐指数
5
解决办法
38万
查看次数

从Directories Only JFileChooser返回的路径的一部分有时是重复的

在我的应用程序中,我希望用户能够选择一个目录来存储内容.我有一个文本字段,我用它来显示他们选择的目录.如果他们只是点击一个目录(不要浏览它),一切都很好.但是,如果他们双击目录并查看其中,则目录名称是重复的.

防爆.他们在主目录中,单击文件夹桌面...返回的路径是〜/ Desktop.另一方面,如果它们在主目录中,双击文件夹Desktop,现在在Desktop文件夹中,返回的路径是〜/ Desktop/Destkop.

这是我正在做的事情:

JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(false);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {
    File f = chooser.getSelectedFile();
    loadField.setText(f.getPath());
}
Run Code Online (Sandbox Code Playgroud)

我也试过做类似的事情,chooser.getCurrentDirectory()但这也不起作用.

编辑:使用Mac OS X,Java 1.6

java swing jfilechooser

5
推荐指数
1
解决办法
4165
查看次数

使用线程和ProcessBuilder

我对使用线程非常不熟悉,所以我希望有人可以帮我找出最好的方法.

我的java应用程序中有一个JButton ...当你点击按钮时,我有一个Process Builder,它创建一个执行一些外部python代码的进程.python代码生成一些文件,这可能需要一些时间.当python代码完成执行时,我需要将这些文件加载​​到我的Java应用程序中的applet中.

在其当前形式中,我在调用外部python文件的代码中有一个p.waitFor()...所以当你单击按钮时,按钮会挂起(整个应用程序实际挂起),直到完成该过程.显然,我希望用户能够在此过程进行时与应用程序的其余部分进行交互,但是一旦完成,我希望我的应用程序知道它,以便它可以将文件加载到applet中.

做这个的最好方式是什么?

谢谢你的帮助.

java multithreading process processbuilder

2
推荐指数
1
解决办法
5962
查看次数