Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JFileChooser加载文件?_Java_Swing_Jfilechooser - Fatal编程技术网

Java 如何使用JFileChooser加载文件?

Java 如何使用JFileChooser加载文件?,java,swing,jfilechooser,Java,Swing,Jfilechooser,在Java中,我想使用JFileChooser以自己的格式加载文件[无论它是什么格式]。表示我不想阅读和显示我的JFrame中的内容。相反,我希望它们像在Windows照片查看器/Irfan查看器中打开的图像和在Adobe Reader中单击按钮打开的PDF一样打开/加载 我找了很多。但我读过的所有教程都告诉我如何通过单击JButton打印一行“打开此文件/您被选中此文件”。实际上,没有人通过单击按钮打开/加载文件。可能是因为我不熟悉Java,所以我没有正确理解他们所说的。我希望我的问题是明确的

在Java中,我想使用
JFileChooser
以自己的格式加载文件[无论它是什么格式]。表示我不想阅读和显示我的
JFrame
中的内容。相反,我希望它们像在Windows照片查看器/Irfan查看器中打开的图像和在Adobe Reader中单击按钮打开的PDF一样打开/加载

我找了很多。但我读过的所有教程都告诉我如何通过单击
JButton
打印一行“打开此文件/您被选中此文件”。实际上,没有人通过单击按钮打开/加载文件。可能是因为我不熟悉Java,所以我没有正确理解他们所说的。我希望我的问题是明确的,请帮助

以下是我从教程页面获得的代码:

 public class JFileChooserTest {

    public static void main(String[] args) {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JDialog.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("JComboBox Test");
        frame.setLayout(new FlowLayout());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton button = new JButton("Select File");
        button.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
            JFileChooser fileChooser = new JFileChooser();
            int returnValue = fileChooser.showOpenDialog(null);
            if (returnValue == JFileChooser.APPROVE_OPTION) {
              File selectedFile = fileChooser.getSelectedFile();
              System.out.println(selectedFile.getName());
            }
          }
        });
        frame.add(button);
        frame.pack();
        frame.setVisible(true);
    }    
}
下面是我想用Java做的事情。以下是windows的一个示例:

单击“浏览”按钮可打开此窗口


当我选择XLS文件并单击“打开”按钮时,将打开一个XLS文件。我想用Java做同样的事情。希望现在更清楚。

如果我理解正确,您希望选择一个文件并将其传递给系统的默认应用程序。不幸的是,这在您的操作系统上是高度可靠的。对于Windows,可以将其传递到命令行,如下所示:

        String systemcall = "cmd /C start \"\" \"" + absolutePath + "\"";
        Runtime runTime = Runtime.getRuntime();
        HomeLogger.instance().info("EXECUTE " + systemcall);
        runTime.exec(systemcall);
字符串绝对路径必须是文件的确切位置,例如“C:\test.txt”。我希望这有帮助

您可以尝试使用:

编辑 您需要在此处更新:

button.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent ae) {
      JFileChooser fileChooser = new JFileChooser();
      int returnValue = fileChooser.showOpenDialog(null);
      if (returnValue == JFileChooser.APPROVE_OPTION) {
        File selectedFile = fileChooser.getSelectedFile();
        java.awt.Desktop.getDesktop().open(selectedFile);//<-- here
      }
   }
});
button.addActionListener(新ActionListener(){
已执行的公共无效行动(行动事件ae){
JFileChooser fileChooser=新的JFileChooser();
int returnValue=fileChooser.showOpenDialog(null);
if(returnValue==JFileChooser.APPROVE\u选项){
File selectedFile=fileChooser.getSelectedFile();

java.awt.Desktop.getDesktop().open(selectedFile);//您想要什么?您想要查看文件内容吗?不,我想要加载/导入我通过单击按钮选择的文件。就像我们在windows文件打开资源管理器中打开文件一样。您能解释一下“加载/导入”的更多含义吗?谢谢,我将尝试此方法,但对我来说,需要先研究此方法。有关正确创建和处理流程的许多好提示,请参见。然后忽略它指的是
exec
,并使用
ProcessBuilder
创建流程。但是要获得更好、更可靠的答案,请参阅。我觉得这是fa的更好答案r、 一旦建立,它实际上就是一个“一行程序”来使用它。顺便说一句-尝试
desktop.open(新文件(System.getProperty(“user.home”));
。这是一个很好的演示。因为它可以在任何机器上运行。@Sam,有什么问题吗?是的,它应该用用户pc中的默认编辑器打开指定的文件,即Windows中的记事本,如果是.txt,它将打开我们在其中提到的文本/pdf。[file file file=new file(“/users/pankaj/source.txt”);]。但我如何浏览和选择文件并单击“打开”-我希望打开文件的位置。便笺簿中的文本文档和Windows photo viewer中的图像等!!!非常感谢。我感谢您的努力。我已经搜索了三天。对于新手来说,这是一个简单易懂的答案。谢谢…我可以问一下打印文件名的目的吗?System.out.println(selectedFile.getName());
button.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent ae) {
      JFileChooser fileChooser = new JFileChooser();
      int returnValue = fileChooser.showOpenDialog(null);
      if (returnValue == JFileChooser.APPROVE_OPTION) {
        File selectedFile = fileChooser.getSelectedFile();
        java.awt.Desktop.getDesktop().open(selectedFile);//<-- here
      }
   }
});