當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 FileChooser用法及代碼示例


FileChooser類是JavaFX的一部分。它用於調用用於選擇單個文件的文件打開對話框(showOpenDialog),用於選擇多個文件的文件打開對話框(showOpenMultipleDialog)和文件保存對話框(showSaveDialog)。 FileChooser類繼承Object類。

該類的構造函數是:

  • FileChooser() :創建一個新的FileChooser對話框。

常用方法:


方法 說明
getInitialDirectory() 返回文件選擇器的初始目錄。
getTitle() 返回文件選擇器的標題。
setInitialDirectory(File f) 設置文件選擇器的初始目錄。
setTitle(String t) 設置文件選擇器的標題。
showOpenDialog(Window w) 顯示一個新的打開文件選擇對話框。
setInitialFileName(String n) 設置文件選擇器的初始文件名。
showSaveDialog(Window w) 顯示一個新的“保存文件選擇”對話框。
getInitialFileName() 返回文件選擇器的初始文件名。

以下程序說明了FileChooser類的用法:

  1. Java程序創建fileChooser並將其添加到階段:在此程序中,我們將創建一個名為file_chooser的文件選擇器。然後創建一個名為label的Label和兩個名為button和button1的Button。我們將創建兩個EventHandler來處理按下button或button1時的事件。當按下按鈕時,將顯示一個打開的文件選擇器對話框,並且所選文件在標簽中顯示為文本;當按下button1時,一個保存文件選擇器出現,並且所選文件在標簽中顯示為文本。將標簽和按鈕添加到Vbox,將VBox添加到場景,並將場景添加到舞台,然後調用show()函數以顯示最終結果。
    // Java Program to create fileChooser 
    // and add it to the stage 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.geometry.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.canvas.*; 
    import javafx.scene.text.*; 
    import javafx.scene.Group; 
    import javafx.scene.shape.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.collections.*; 
    import java.io.*; 
    import javafx.stage.FileChooser; 
       
    public class FileChooser_1 extends Application { 
       
    // launch the application 
    public void start(Stage stage) 
    { 
      
        try { 
      
            // set title for the stage 
            stage.setTitle("FileChooser"); 
      
            // create a File chooser 
            FileChooser fil_chooser = new FileChooser(); 
      
            // create a Label 
            Label label = new Label("no files selected"); 
      
            // create a Button 
            Button button = new Button("Show open dialog"); 
      
            // create an Event Handler 
            EventHandler<ActionEvent> event =  
            new EventHandler<ActionEvent>() { 
      
                public void handle(ActionEvent e) 
                { 
      
                    // get the file selected 
                    File file = fil_chooser.showOpenDialog(stage); 
      
                    if (file != null) { 
                          
                        label.setText(file.getAbsolutePath()  
                                            + "  selected"); 
                    } 
                } 
            }; 
      
            button.setOnAction(event); 
      
            // create a Button 
            Button button1 = new Button("Show save dialog"); 
      
            // create an Event Handler 
            EventHandler<ActionEvent> event1 =  
             new EventHandler<ActionEvent>() { 
      
                public void handle(ActionEvent e) 
                { 
      
                    // get the file selected 
                    File file = fil_chooser.showSaveDialog(stage); 
      
                    if (file != null) { 
                        label.setText(file.getAbsolutePath()  
                                            + "  selected"); 
                    } 
                } 
            }; 
      
            button1.setOnAction(event1); 
      
            // create a VBox 
            VBox vbox = new VBox(30, label, button, button1); 
      
            // set Alignment 
            vbox.setAlignment(Pos.CENTER); 
      
            // create a scene 
            Scene scene = new Scene(vbox, 800, 500); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        catch (Exception e) { 
      
            System.out.println(e.getMessage()); 
        } 
    } 
      
    // Main Method 
    public static void main(String args[]) 
    { 
      
        // launch the application 
        launch(args); 
    } 
    }

    輸出:

  2. Java程序創建FileChooser,設置標題,初始File並將其添加到階段:在此程序中,我們將創建一個名為fil_chooser的文件選擇器。然後創建一個名為label的Label和兩個名為button和button1的Button。使用setTitle()和setInitialDirectory()函數設置文件選擇器的標題和初始目錄。現在創建兩個EventHandler來處理按下button或button1時的事件。當按下按鈕時,將顯示一個打開的文件選擇器對話框,並且所選文件在標簽中顯示為文本;當按下button1時,一個保存文件選擇器出現,並且所選文件在標簽中顯示為文本。將標簽和按鈕添加到Vbox,將VBox添加到場景,並將場景添加到舞台,然後調用show()函數以顯示最終結果。
    // Java Program to create FileChooser 
    // & set title, initial File 
    // and add it to the stage 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.geometry.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.canvas.*; 
    import javafx.scene.text.*; 
    import javafx.scene.Group; 
    import javafx.scene.shape.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.collections.*; 
    import java.io.*; 
    import javafx.stage.FileChooser; 
       
    public class FileChooser_2 extends Application { 
      
    // launch the application 
    public void start(Stage stage) 
    { 
      
        try { 
      
            // set title for the stage 
            stage.setTitle("FileChooser"); 
      
            // create a File chooser 
            FileChooser fil_chooser = new FileChooser(); 
      
            // set title 
            fil_chooser.setTitle("Select File"); 
      
            // set initial File 
            fil_chooser.setInitialDirectory(new File("e:\\")); 
      
            // create a Label 
            Label label = new Label("no files selected"); 
      
            // create a Button 
            Button button = new Button("Show open dialog"); 
      
            // create an Event Handler 
            EventHandler<ActionEvent> event =  
            new EventHandler<ActionEvent>() { 
      
                public void handle(ActionEvent e) 
                { 
      
                    // get the file selected 
                    File file = fil_chooser.showOpenDialog(stage); 
      
                    if (file != null) { 
                        label.setText(file.getAbsolutePath()  
                                            + "  selected"); 
                    } 
                } 
            }; 
      
            button.setOnAction(event); 
      
            // create a Button 
            Button button1 = new Button("Show save dialog"); 
      
            // create an Event Handler 
            EventHandler<ActionEvent> event1 =  
             new EventHandler<ActionEvent>() { 
      
                public void handle(ActionEvent e) 
                { 
      
                    // get the file selected 
                    File file = fil_chooser.showSaveDialog(stage); 
      
                    if (file != null) { 
                        label.setText(file.getAbsolutePath()  
                                            + "  selected"); 
                    } 
                } 
            }; 
      
            button1.setOnAction(event1); 
      
            // create a VBox 
            VBox vbox = new VBox(30, label, button, button1); 
      
            // set Alignment 
            vbox.setAlignment(Pos.CENTER); 
      
            // create a scene 
            Scene scene = new Scene(vbox, 800, 500); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        catch (Exception e) { 
      
            System.out.println(e.getMessage()); 
        } 
    } 
      
    // Main Method 
    public static void main(String args[]) 
    { 
      
        // launch the application 
        launch(args); 
    } 
    }

    輸出:

注意:以上程序可能無法在在線IDE中運行,請使用離線編譯器。

參考: https://docs.oracle.com/javase/8/javafx/api/javafx/stage/FileChooser.html



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | FileChooser Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。