gpt4 book ai didi

java - 我怎样才能在 JAVA Swing 中有一个下载文件选项?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:59:04 26 4
gpt4 key购买 nike

我是 Swing 新手,希望在我的 Swing 代码中实现下载文件功能,这将允许用户保存或打开特定文件。

我确实看过 JFileChooser.showOpenDialog 和 showSaveDialog,但我不想使用它,因为它让我可以从文件系统中选择任何文件。

希望我的问题很清楚。请帮我解决这个问题。

最佳答案

您想使用它们,并添加一个过滤器。例如:

    JFileChooser chooser = new JFileChooser();
// Note: source for ExampleFileFilter can be found in FileChooserDemo,
// under the demo/jfc directory in the Java 2 SDK, Standard Edition.
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("jpg");
filter.setDescription("JPG & GIF Images");
chooser.setFileFilter(filter);
int returnVal = chooser.showSaveDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
}

这只会显示 JPG 和 GIF 文件。从 here 中窃取的示例

编辑:只是让你知道 ExampleFileFilter 实现了抽象类 FileFilter

编辑:因为您知道文件的名称,所以您可以只使用一个按钮,上面写着打开并使用 Runtime .getRuntime.exec('the file to be opened.doc") 并且应该在适当的应用程序中打开它。

为了保存,您仍然需要提示他们找出要保存的位置,因此您仍然需要 JFileChooser。我仍然会使用过滤器,并在必要时动态确定文件扩展名是什么,然后执行以下操作:

    JFileChooser chooser = new JFileChooser();
// Note: source for ExampleFileFilter can be found in FileChooserDemo,
// under the demo/jfc directory in the Java 2 SDK, Standard Edition.

String selectedFile = "The suggested save name.";
chooser.setSelectedFile(selectedFile);

ExampleFileFilter filter = new ExampleFileFilter();
String extension = "Do something to find your extension";
filter.addExtension(extension);
filter.setDescription("JPG & GIF Images");
chooser.setFileFilter(filter);
int returnVal = chooser.showSaveDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
//then write your code to write to disk
}

希望对您有所帮助。

关于java - 我怎样才能在 JAVA Swing 中有一个下载文件选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com