JFileChooser 无法设置默认选择

     2023-05-07     283

关键词:

【中文标题】JFileChooser 无法设置默认选择【英文标题】:JFileChooser can't set default selection 【发布时间】:2015-06-30 20:34:00 【问题描述】:

我想提示用户一个目录来保存一些文件。因此,我按照这个简单的演示应用程序设置了一个 JFileChooser:

import javax.swing.JFileChooser;

public class Demo 
   public static void main(String[] args) 
      new Demo();
   

   public Demo() 
      JFileChooser chooser = new JFileChooser();
      chooser.setDialogTitle("Chooser test");
      chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      chooser.setAcceptAllFileFilterUsed(false);
      chooser.showSaveDialog(null);
   

问题是“选择”按钮是灰色的,直到用户以某种方式与文件选择器交互,即使当前显示的目录(在这种情况下是用户的主目录,尽管我的实际用例是更具体)是一个完全有效的目的地。我尝试使用JFileChooser.setSelectedFile() 设置默认选择,但这仍然不会导致启用“选择”按钮。

我预计在大多数情况下,我的用户会希望使用我为他们选择的默认目录,并且他们应该能够点击文件选择器。如何让“选择”按钮真正启用?

这是在 OSX、Java 6/7 上,以防万一。任何建议/建议表示赞赏。感谢您的宝贵时间。

【问题讨论】:

在 Windows 机器上的 Java 7 和 8 上测试它没有问题..完美运行 好的,那么这很可能是 OSX 很痛苦。感谢您的跨平台测试。 【参考方案1】:

这在 Mac 中看起来像 JRE problem 尝试将 JRE/JDK 更新到最新并尝试

随便加

  chooser.setCurrentDirectory(new File(System.getProperty("user.dir")));

这会将currentDirectory 位置设置为当前目录

【讨论】:

不幸的是,没有什么不同。 尝试将 JRE 版本更新到已编辑帖子中所述的最新版本 嗯,这看起来确实是相关的。谢谢。在实际部署中,我们仍然需要暂时解决 Java 6 的问题,但希望在未来几个月的某个时候,我们能够升级到 8。【参考方案2】:

好的,根据 Madhan 的 cmets,这似乎是特定于 OSX 的。考虑到这一点,我找到了一种解决方法:调用JFileChooser.updateUI() 将强制按钮注意到事情发生了变化。这是更新后的脚本:

import java.io.File;

import javax.swing.JFileChooser;

public class Demo 
   public static void main(String[] args) 
      new Demo();
   

   public Demo() 
      JFileChooser chooser = new JFileChooser();
      chooser.setDialogTitle("Chooser test");
      chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      chooser.setAcceptAllFileFilterUsed(false);
      File root = chooser.getCurrentDirectory();
      chooser.setCurrentDirectory(new File(root.getParent()));
      chooser.setSelectedFile(root);
      chooser.updateUI();
      chooser.showSaveDialog(null);
   

不幸的是,调用setCurrentDirectorysetSelectedFile 似乎是必要的。至少它有效。感谢您的协助,马丹;我假设我做错了什么,所以知道这是一个操作系统/外观问题,我开始寻找解决方法。

【讨论】:

你在 OSx 中测试过吗?什么是 JRE 版本 我正在 OSX 中进行开发,是的。 JRE 是 1.7.0_67-b01。 chooser.updateUI() 是说服按钮启用自身所必需的。

swing015——jfilechooser:文件选择器(代码片段)

...ionListener;importjava.io.File;importjavax.swing.JButton;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.filechooser.FileNameExtensionFilter;publicclassTestJFileChooser publicstaticvoidmain(String[]args) //1、创建一个顶层容器 finalJFramej... 查看详情

swing-jfilechooser的使用

JFileChooser文件选择器是Swing中经常用到的一个控件。它的使用主要包含以下几个参数:1.当前路径。也就是它第一次打开时所在的路径,许多软件喜欢设置为桌面。2.文件过滤器。通过设置文件过滤器,只有特定类型的文件是可见... 查看详情

如何在 JFileChooser 中显示文件的默认系统图标?

】如何在JFileChooser中显示文件的默认系统图标?【英文标题】:HowtodisplaydefaultsystemiconforfilesinJFileChooser?【发布时间】:2013-07-1121:21:28【问题描述】:如何显示JFileChooser中文件的默认系统图标?即JFileChooser中文件的图标应该与桌... 查看详情

java示例代码_在JFileChooser中显示文件的默认系统图标

java示例代码_在JFileChooser中显示文件的默认系统图标 查看详情

java示例代码_JFileChooser选择目录但显示文件

java示例代码_JFileChooser选择目录但显示文件 查看详情

JFileChooser 设置目录

】JFileChooser设置目录【英文标题】:JFileChoosersetdirectory【发布时间】:2019-12-2118:35:31【问题描述】:我正在尝试设置我的JFileChooser应该显示的目录。我正在尝试使用setCurrentDirectory方法:publicclassFileChooserpublicstaticvoidmain(String[]args)... 查看详情

java示例代码_读取用户使用JFileChooser选择的图像文件

java示例代码_读取用户使用JFileChooser选择的图像文件 查看详情

java示例代码_JPanel内部的JFileChooser;如何让用户选择

java示例代码_JPanel内部的JFileChooser;如何让用户选择 查看详情

java示例代码_使JFileChooser默认为“计算机视图”,而不是“我的文档”

java示例代码_使JFileChooser默认为“计算机视图”,而不是“我的文档” 查看详情

UIDatePicker:无法选择默认值

】UIDatePicker:无法选择默认值【英文标题】:UIDatePicker:itisnotpossibletoselectdefaultvalue【发布时间】:2011-11-1814:17:35【问题描述】:我创建了UIDatePicker并为事件UIControlEventValueChanged添加了目标。日期选择器的默认值设置为当前日期。... 查看详情

取消在 JFileChooser 中选择文件而不关闭对话框

】取消在JFileChooser中选择文件而不关闭对话框【英文标题】:CancelselectingafilewithinJFileChooserwithoutclosingthedialogue【发布时间】:2013-05-0816:52:53【问题描述】:我正在尝试使用JFileChooser实现“另存为”对话框。该对话框应该使用户能... 查看详情

JFileChooser - 设置固定文件名

】JFileChooser-设置固定文件名【英文标题】:JFileChooser-settingafixedfilename【发布时间】:2012-08-3013:27:44【问题描述】:我正在制作一个类似于带有代码突出显示的文本编辑器的应用程序。当我尝试保存一些文本时,我希望在JFileChoos... 查看详情

如何从 JFileChooser(JAVA Swing) 中禁用文件操作、文件选择和过滤面板?

】如何从JFileChooser(JAVASwing)中禁用文件操作、文件选择和过滤面板?【英文标题】:Howcanthedisablefileoperation,fileselectionandfilterpanelfromJFileChooser(JAVASwing)?【发布时间】:2009-04-2809:11:49【问题描述】:我需要在Panel中嵌入JFileChooser对话... 查看详情

为 JFileChooser 上的选定文件设置自己的文件图标

】为JFileChooser上的选定文件设置自己的文件图标【英文标题】:Setownfile-iconsforselectedfilesonJFileChooser【发布时间】:2012-05-2617:47:34【问题描述】:我有以下问题。我有一个选定的文件列表,我在JFileChooser的帮助下添加了文件。现... 查看详情

使用 JFileChooser 过滤文件类型

】使用JFileChooser过滤文件类型【英文标题】:FilterfiletypeswithJFileChooser【发布时间】:2013-10-1813:59:16【问题描述】:我正在使用JFileChooser选择一个文件,并且我试图将显示限制为仅显示jpg或jpeg文件。我已经尝试过FileFilter和Choosable... 查看详情

有没有办法用我的 JfileChooser 中选择的扩展来保存我的 bufferedImage?

】有没有办法用我的JfileChooser中选择的扩展来保存我的bufferedImage?【英文标题】:IsthereawaytosavemybufferedImagewiththeextentionselectedinmyJfileChooser?【发布时间】:2019-04-0314:48:32【问题描述】:我的代码有问题。首先,我创建了一个JfileCh... 查看详情

java示例代码_JFileChooser的过滤器应该只显示目录,但无法只显示目录

java示例代码_JFileChooser的过滤器应该只显示目录,但无法只显示目录 查看详情

java示例代码_将字符串附加到已使用java中的JFileChooser选择的文件

java示例代码_将字符串附加到已使用java中的JFileChooser选择的文件 查看详情