关键词:
【中文标题】如何使用 JFileChooser 保存文件?【英文标题】:How to save file using JFileChooser? 【发布时间】:2011-02-01 15:04:57 【问题描述】:我的应用程序中有一个名为“另存为”的方法,它将我的应用程序在计算机上的图像保存到文件中。 我使用 JFileChooser 让用户选择他们想要的位置来保存文件。 问题是除非用户明确键入文件格式,否则它会保存没有扩展名的文件。 如何在“文件类型”下拉菜单中设置 jpg、png 等格式。
以及,如何从文件类型下拉菜单中获取扩展名以保存我的图像文件。
ImageIO.write(image,extension,file);
【问题讨论】:
【参考方案1】:终于解决了我自己的问题:
JFileChooser fc = new JFileChooser("C:/");
fc.addChoosableFileFilter(new JPGSaveFilter());
fc.addChoosableFileFilter(new JPEGSaveFilter());
fc.addChoosableFileFilter(new PNGSaveFilter());
fc.addChoosableFileFilter(new GIFSaveFilter());
fc.addChoosableFileFilter(new BMPSaveFilter());
fc.addChoosableFileFilter(new WBMPSaveFilter());
int retrieval = fc.showSaveDialog(null);
if (retrieval == JFileChooser.APPROVE_OPTION)
String ext = "";
String extension = fc.getFileFilter().getDescription();
if (extension.equals("*.jpg,*.JPG"))
ext = ".jpg";
else if (extension.equals("*.png,*.PNG"))
ext = ".png";
else if (extension.equals("*.gif,*.GIF"))
ext = ".gif";
else if (extension.equals("*.wbmp,*.WBMP"))
ext = ".wbmp";
else if (extension.equals("*.jpeg,*.JPEG"))
ext = ".jpeg";
else if (extension.equals("*.bmp,*.BMP"))
ext = ".bmp";
示例过滤器:
package example
import java.io.File;
import javax.swing.filechooser.FileFilter;
class JPGSaveFilter extends FileFilter
@Override
public boolean accept(File f)
if (f.isDirectory())
return false;
String s = f.getName().toLowerCase();
return s.endsWith(".jpg");
@Override
public String getDescription()
return "*.jpg,*.JPG";
【讨论】:
【参考方案2】:准备文件选择器过滤器:
jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File X (.xxx)", "xxx"));
jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File Y (.yyy)", "yyy"));
jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File Z (.zzz)", "zzz"));
// set default type
jFileChooser.setFileFilter(jFileChooser.getChoosableFileFilters()[0]);
// set default file
jFileChooser().setSelectedFile(defaultFile);
批准验证后
//Add extension to Selected file
File file = new File(jFileChooser().getSelectedFile().getCanonicalPath() + "." + ((FileNameExtensionFilter) jFileChooser().getFileFilter()).getExtensions()[0]);
验证所选文件是否带有扩展名是个好主意。
【讨论】:
我只能说,LOD 原则在这个答案中被忽略了。 天啊,再次!对不起,不是我,我只是另一个面临这个问题的人。【参考方案3】:使用 JFileChoose.SetFileFilter 示例:http://www.java2s.com/Code/JavaAPI/javax.swing/JFileChoosersetFileFilterFileFilterfilter.htm
【讨论】:
ok.. setFileFilter 将在文件类型下拉菜单中显示扩展名。但是如何从这个文件类型下拉菜单中检索或使用选定的扩展名.. 一旦你选择了文件,它应该就像 String ext = file.getName().substring(file.getName().lastIndexOf(".")); 这是一个非常疯狂的 URL...它包含三个“java”、“file”和“filter”。【参考方案4】:我想我得到了更好的解决方案。 将通过示例代码片段进行解释。
这是我设置文件过滤器的方式:jFileChooser.setFileFilter(new FileNameExtensionFilter(".txt", "txt"));
.
在此之后的主要保存行:textArea1.write(new BufferedWriter(new FileWriter(jFileChooser.getSelectedFile().getAbsolutePath() + jFileChooser.getFileFilter().getDescription().replace("All Files", ""))));
.
当然最重要的是这个片段:jFileChooser.getSelectedFile().getAbsolutePath() + jFileChooser.getFileFilter().getDescription().replace("All Files", "")
。
我唯一不喜欢的是,我找不到任何像 'getExtension' 这样的方法,这意味着如果没有不必要的字符串麻烦,你就不能有任何好的描述。
好的,知道了。你可以这样做:
jFileChooser.getFileFilter().toString().replaceFirst(".*extensions=\\[(.*)]]", ".$1").replaceFirst(".*AcceptAllFileFilter.*", "")
.
不幸的是,它不是那么漂亮,但似乎很有魅力。
【讨论】:
如何通过 JFileChooser 将 Icon 对象保存到文件中?
】如何通过JFileChooser将Icon对象保存到文件中?【英文标题】:HowtosaveIconobjectintoafileviaJFileChooser?【发布时间】:2011-12-0500:56:35【问题描述】:我有一个JLabel,其中保存了我的ImageIcon,如下所示:ImageIconimageIcon=sample.map();//amapmethodc... 查看详情
使用 JFileChooser 保存
】使用JFileChooser保存【英文标题】:SavingwithaJFileChooser【发布时间】:2012-03-1601:28:43【问题描述】:我使用JFileChooser和showSaveDialoge()和setSelectionMode(JfileChooser.DIRECTORIES_ONLY)来设置预选文件的保存位置和名称。我希望用户能够选择新... 查看详情
JFileChooser保存对话框建议文件名[重复]
】JFileChooser保存对话框建议文件名[重复]【英文标题】:JFileChooserSaveDialogSuggestFileName[duplicate]【发布时间】:2012-12-2212:38:35【问题描述】:可能重复:JFileChooser.showSaveDialog(…)-howtosetsuggestedfilename我已经看到这个问题被问了几次,... 查看详情
JFileChooser - 自定义文件名(创建新文件)
】JFileChooser-自定义文件名(创建新文件)【英文标题】:JFileChooser-Customfilename(createnewfile)【发布时间】:2012-12-0607:08:51【问题描述】:我可能在JFileChooserAPI中遗漏了一些明显的东西,但是当我尝试使用JFileChooser保存文件时,我... 查看详情
如何在 JFileChooser 保存对话框中处理问号或星号(“?”或“*”)?
】如何在JFileChooser保存对话框中处理问号或星号(“?”或“*”)?【英文标题】:HowdoIhandlequestionmarksorasterisks(\'?\'or\'*\')inJFileChoosersavedialog?【发布时间】:2021-06-0722:41:59【问题描述】:首先我创建一个JFileChooser,然后调用showS... 查看详情
java示例代码_如何在JFileChooser OpenDialog中使用两个文件扩展名之一的所有文件
java示例代码_如何在JFileChooser OpenDialog中使用两个文件扩展名之一的所有文件 查看详情
java示例代码_将文本文件保存在JFileChooser给定的路径中
java示例代码_将文本文件保存在JFileChooser给定的路径中 查看详情
JFileChooser - 设置固定文件名
】JFileChooser-设置固定文件名【英文标题】:JFileChooser-settingafixedfilename【发布时间】:2012-08-3013:27:44【问题描述】:我正在制作一个类似于带有代码突出显示的文本编辑器的应用程序。当我尝试保存一些文本时,我希望在JFileChoos... 查看详情
javagui问题。如何触动按钮后弹出文件浏览器和文件名选择框,选择保存目录?
...。求具体代码呀~~~新手求指导~参考技术A使用javaswing中的JFileChooser类就ok了importjavax.swing.JFileChooser;importjavax.swing.JPanel;importjavax.swing.filechooser.FileNameExtensionFilter;publicclassWebJianXuanZe publicstaticvoidfileChooser() JFileChooserchooser=newJFileChooser()... 查看详情
如何在 JFileChooser 中显示文件的默认系统图标?
】如何在JFileChooser中显示文件的默认系统图标?【英文标题】:HowtodisplaydefaultsystemiconforfilesinJFileChooser?【发布时间】:2013-07-1121:21:28【问题描述】:如何显示JFileChooser中文件的默认系统图标?即JFileChooser中文件的图标应该与桌... 查看详情
使用 JFileChooser 过滤文件类型
】使用JFileChooser过滤文件类型【英文标题】:FilterfiletypeswithJFileChooser【发布时间】:2013-10-1813:59:16【问题描述】:我正在使用JFileChooser选择一个文件,并且我试图将显示限制为仅显示jpg或jpeg文件。我已经尝试过FileFilter和Choosable... 查看详情
java用filedialog怎么打开和保存文件
...参考技术A这个你需要看下jdk有些麻烦给你看看我写的吧jFileChooser1.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventarg0)if(jFileChooser1.CANCEL_OPTION==1)if(jFileChooser1.getSelectedFile()!=null)elsejDialog1.dispose();); 查看详情
取消在 JFileChooser 中选择文件而不关闭对话框
】取消在JFileChooser中选择文件而不关闭对话框【英文标题】:CancelselectingafilewithinJFileChooserwithoutclosingthedialogue【发布时间】:2013-05-0816:52:53【问题描述】:我正在尝试使用JFileChooser实现“另存为”对话框。该对话框应该使用户能... 查看详情
Java windowBuilder - 如何显示“文件已存在”警告?
...015-10-2509:18:50【问题描述】:我正在“windowbuilder”中使用Jfilechooser实现文件保存。我可以使用用户输入的名称保存文件,但如何显示警告“文件名已存在”或提供“覆盖现有文件 查看详情
简单的 JFileChooser FileFilter 不起作用
】简单的JFileChooserFileFilter不起作用【英文标题】:SimpleJFileChooserFileFilternotworking【发布时间】:2020-04-3018:08:03【问题描述】:以下是使用从this派生的JFileChooser将文件保存在用户输入目录上的简单代码,正如this另一个***问题的答... 查看详情
如何从 JFileChooser(JAVA Swing) 中禁用文件操作、文件选择和过滤面板?
】如何从JFileChooser(JAVASwing)中禁用文件操作、文件选择和过滤面板?【英文标题】:Howcanthedisablefileoperation,fileselectionandfilterpanelfromJFileChooser(JAVASwing)?【发布时间】:2009-04-2809:11:49【问题描述】:我需要在Panel中嵌入JFileChooser对话... 查看详情
有没有办法用我的 JfileChooser 中选择的扩展来保存我的 bufferedImage?
】有没有办法用我的JfileChooser中选择的扩展来保存我的bufferedImage?【英文标题】:IsthereawaytosavemybufferedImagewiththeextentionselectedinmyJfileChooser?【发布时间】:2019-04-0314:48:32【问题描述】:我的代码有问题。首先,我创建了一个JfileCh... 查看详情
java示例代码_读取用户使用JFileChooser选择的图像文件
java示例代码_读取用户使用JFileChooser选择的图像文件 查看详情