Java “使用打开”对话框

Java “使用打开”对话框,java,swing,jfilechooser,open-with,Java,Swing,Jfilechooser,Open With,我正在用Java制作一个应用程序。我希望在单击JButton时显示“打开方式”对话框 我知道在Windows中,推荐程序列表的内容是根据注册表项确定的 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\filetype\OpenWithList ..其中“文件类型”是所需的文件类型 在完全独立于运行此应用程序的操作系统的情况下,有没有办法做到这一点?或者我必须得到相应的操作系统名称和程序吗 在完全独立于运行此应用程

我正在用Java制作一个应用程序。我希望在单击JButton时显示“打开方式”对话框

我知道在Windows中,推荐程序列表的内容是根据注册表项确定的

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\filetype\OpenWithList
..其中“文件类型”是所需的文件类型

在完全独立于运行此应用程序的操作系统的情况下,有没有办法做到这一点?或者我必须得到相应的操作系统名称和程序吗

在完全独立于运行此应用程序的操作系统的情况下,有没有办法做到这一点

没有

或者我必须得到相应的操作系统名称和程序吗

在完全独立于运行此应用程序的操作系统的情况下,有没有办法做到这一点

没有

或者我必须得到相应的操作系统名称和程序吗


是的。

我不完全确定这个答案是否相关,因为我正在做一些假设。如果是要打开的文件,可以使用默认应用程序打开该文件

我假设但未测试,当未设置默认应用程序时,将显示一个对话框,询问您要使用什么应用程序打开该文件,类似于在文件浏览器中双击此类文件时

这并不完全是你所要求的,但可能已经足够了


否则,我恐怕同意Andrew的回答,即没有一般的方法可以做到这一点。

由于我正在做一些假设,我不完全确定这个答案是否相关。如果是要打开的文件,可以使用默认应用程序打开该文件

我假设但未测试,当未设置默认应用程序时,将显示一个对话框,询问您要使用什么应用程序打开该文件,类似于在文件浏览器中双击此类文件时

这并不完全是你所要求的,但可能已经足够了


否则,恐怕我同意Andrew的回答,即没有一般的方法可以做到这一点。

我假设但没有测试我不知道,很好奇,所以测试了它以查看。。主线程java.io.IOException中的异常:无法打开file:///I:/.../preface.zz1. 错误消息:未指定的错误。不幸的是,没有友好的对话框或选项菜单+我猜OP不想听到他们说的话!我排除了桌面,因为它从来没有提供选择@AndrewThompson感谢您提供的信息。这意味着JDK有另一种行为,然后双击你的文件浏览器,在你的桌面上。。。真是个倒霉的家伙,一个人就搞定了。如果我双击.zz1扩展名文件a重命名的HTML,我会看到通常的Windows不知道如何处理它-查找应用程序/查阅web服务对话框。是的,这是一个令人沮丧的问题。在这种情况下,这样做是合乎逻辑的,只有在用户“转义”对话框时才会抛出异常。。我刚刚意识到JRE可能无法检测到当时发生的事情,这就是为什么它会爆炸。JRE可能无法检测到当时发生的事情-很好的猜测:我隐约记得有一次与前swing团队成员在使用桌面时进行的讨论。浏览方法正是这种结果:-我假设但没有测试我不知道,我很好奇,所以测试了一下。。主线程java.io.IOException中的异常:无法打开file:///I:/.../preface.zz1. 错误消息:未指定的错误。不幸的是,没有友好的对话框或选项菜单+我猜OP不想听到他们说的话!我排除了桌面,因为它从来没有提供选择@AndrewThompson感谢您提供的信息。这意味着JDK有另一种行为,然后双击你的文件浏览器,在你的桌面上。。。真是个倒霉的家伙,一个人就搞定了。如果我双击.zz1扩展名文件a重命名的HTML,我会看到通常的Windows不知道如何处理它-查找应用程序/查阅web服务对话框。是的,这是一个令人沮丧的问题。在这种情况下,这样做是合乎逻辑的,只有在用户“转义”对话框时才会抛出异常。。我刚刚意识到,JRE可能无法检测到当时发生的事情,这就是为什么它会爆炸。JRE可能无法检测到当时发生的事情-很好的猜测:我隐约记得有一次与前swing团队成员在使用Desktop时进行的讨论。browse方法与此结果完全一致:-