簡體   English   中英

如何使用JFileChooser加載文件?

[英]How to load a File using JFileChooser?

在Java中,我想使用JFileChooser以自己的格式加載文件[無論格式如何]。 意味着我不想閱讀和顯示JFrame的內容。 相反,我希望它們像在Windows照片查看器/ Irfan Viewer中打開的圖像一樣打開/加載,並在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做同樣的事情。 希望現在更清楚了。

您可以嘗試使用Desktop.open()

Desktop.getDesktop().open(selectedFile);

編輯你需要在這里更新:

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
      }
   }
});

網站示例代碼:

如果我理解正確,您需要選擇一個文件並將其傳遞給系統的默認應用程序。 不幸的是,這在您的操作系統上非常可靠。 對於Windows,您可以將其傳遞給命令行,如下所示:

        String systemcall = "cmd /C start \"\" \"" + absolutePath + "\"";
        Runtime runTime = Runtime.getRuntime();
        HomeLogger.instance().info("EXECUTE " + systemcall);
        runTime.exec(systemcall);

String絕對路徑必須是文件的確切位置,例如“C:\\ test.txt”。 我希望有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM