在JFileChooser似乎缺少该FEATURE:一种方式保存文件(通常被选中,这样,当用户开始输入将被替换的东西)时,建议的文件名.
有没有解决的办法?
我想将用户限制在目录及其子目录中,但"父目录"按钮允许他们浏览到任意目录.
我应该怎么做呢?
我要求对当前使用JFileChooser的小applet进行一些更改.
其中一个主要的抱怨是文件选择器很难使用,因为它的行为与本机小部件不同,特别是对于导航到根级别.
所以,知道这个以及JFileChooser遭受的所有其他问题(比如在Windows上缓存的zip文件......),我想知道java世界中存在一个可行的替代方案.
当然,有SWT使用本机窗口小部件,但是将applet大小增加25并不是一个真正的选择.那么,文件选择器是否有更好的纯java实现?
对于我正在研究的项目.我需要在文件系统上查找可执行文件.对于UNIX衍生产品,我假设用户在强大的$ PATH变量中有文件,但在Windows上没有这样的东西.
我可以放心地假设文件最多只有2级到文件系统,但我不知道它将在什么驱动器上.我必须尝试所有驱动器,但我无法弄清楚如何列出所有可用的驱动器(分配了一个字母).
有帮助吗?
编辑:我知道有一个%PATH%变量,但它不像UNIX系统那样集成.例如,我正在寻找的应用程序是OpenOffice.通常,此类软件不会以%PATH%为单位.
在我的Windows机器上,我的主硬盘驱动器上有字母C:和名称"Local disk".
要在Windows上列出Java中的驱动器号,File对象具有静态listRoots()方法.但我无法找到一种方法来获取Windows上的驱动器名称(而不是驱动器号).
有人曾尝试过这个吗?
我正在用java编写一个图编辑器.此应用程序可以选择导出到各种标准图像格式,如.jpg,.png等.当用户单击文件 - >导出时,您将获得JFileChooser其中包含FileFilters 的数量.jpg,.png等等.
现在这是我的问题:
有没有办法将默认值的扩展调整到所选的文件过滤器?例如,如果文档名为"lolcat",则在选择png过滤器时,默认选项应为"lolcat.png",当用户选择jpg文件过滤器时,默认值应自动更改为"lolcat.jpg".
这可能吗?我该怎么做?
编辑:基于下面的答案,我写了一些代码.但它还没有完全奏效.我添加了一个propertyChangeListener到FILE_FILTER_CHANGED_PROPERTY,但似乎在这个方法getSelectedFile()返回null.这是代码.
package nl.helixsoft;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter;
public class JFileChooserTest {
public class SimpleFileFilter extends FileFilter {
private String desc;
private List<String> extensions;
private boolean showDirectories;
/**
* @param name example: "Data files"
* @param glob example: "*.txt|*.csv"
*/
public SimpleFileFilter …Run Code Online (Sandbox Code Playgroud)