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


JavaFX 類 DirectoryChooser用法及代碼示例


DirectoryChooser類是JavaFX的一部分。 DirectoryChooser類顯示目錄選擇器對話框,該對話框允許用戶選擇特定目錄。打開目錄對話框可能總是會導致no-op,即返回空文件。 DirectoryChooser類繼承Object類。

該類的構造函數:

  • DirectoryChooser() :創建目錄選擇器的新對象。

常用方法:


方法 說明
getInitialDirectory() 返回目錄選擇器的initialDirectory。
getTitle() 返回目錄選擇器的標題。
setInitialDirectory(File val) 設置屬性initialDirectory的值
setTitle(String t) 設置目錄選擇器的標題。
showDialog(Window w) 顯示一個新的目錄選擇對話框。

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

  1. Java程序來創建DirectoryChooser並將其添加到階段:在此程序中,我們將創建一個名為dir_chooser的目錄選擇器。創建一個名為label的Label和一個名為button的Button。創建一個EventHandler來處理按下按鈕時的事件。按下按鈕後,將顯示目錄選擇器對話框,並且所選目錄在標簽中顯示為文本。將標簽和按鈕添加到Vbox,將VBox添加到場景,並將場景添加到舞台,然後調用show()函數以顯示最終結果。
    // Java Program to create DirectoryChooser 
    // 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.DirectoryChooser; 
      
    public class DirectoryChooser_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            try { 
      
                // set title for the stage 
                stage.setTitle("DirectoryChooser"); 
      
                // create a Directory chooser 
                DirectoryChooser dir_chooser = new DirectoryChooser(); 
      
                // create a Label 
                Label label = new Label("no files selected"); 
      
                // create a Button 
                Button button = new Button("Show"); 
      
                // create an Event Handler 
                EventHandler<ActionEvent> event =  
                new EventHandler<ActionEvent>() { 
      
                    public void handle(ActionEvent e) 
                    { 
      
                        // get the file selected 
                        File file = dir_chooser.showDialog(stage); 
      
                        if (file != null) { 
                            label.setText(file.getAbsolutePath() + "  selected"); 
                        } 
                    } 
                }; 
      
                button.setOnAction(event); 
      
                // create a VBox 
                VBox vbox = new VBox(30, label, button); 
      
                // 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程序創建DirectoryChooser,設置標題,初始目錄並將其添加到階段:在此程序中,我們將創建一個名為dir_chooser的目錄選擇器。創建一個名為label的Label和一個名為button的Button。使用setTitle()和setInitialDirectory()函數設置目錄選擇器的標題和初始目錄。我們將創建一個EventHandler來處理按下按鈕時的事件。按下按鈕後,將顯示目錄選擇器對話框,並且所選目錄在標簽中顯示為文本。將標簽和按鈕添加到Vbox,將VBox添加到場景,並將場景添加到舞台,然後調用show()函數以顯示最終結果。
    // Java Program to create DirectoryChooser, 
    // set title, initial directory 
    // 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.DirectoryChooser; 
      
    public class DirectoryChooser_2 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            try { 
      
                // set title for the stage 
                stage.setTitle("DirectoryChooser"); 
      
                // create a Directory chooser 
                DirectoryChooser dir_chooser =  
                       new DirectoryChooser(); 
      
                // set title 
                dir_chooser.setTitle("Select directory"); 
      
                // set initial directory 
                dir_chooser.setInitialDirectory(new File("e:\\")); 
      
                // create a Label 
                Label label = new Label("no files selected"); 
      
                // create a Button 
                Button button = new Button("Show"); 
      
                // create an Event Handler 
                EventHandler<ActionEvent> event = 
                new EventHandler<ActionEvent>() { 
      
                    public void handle(ActionEvent e) 
                    { 
                        // get the file selected 
                        File file = dir_chooser.showDialog(stage); 
      
                        if (file != null) { 
                            label.setText(file.getAbsolutePath() + "  selected"); 
                        } 
                    } 
                }; 
      
                button.setOnAction(event); 
      
                // create a VBox 
                VBox vbox = new VBox(30, label, button); 
      
                // 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/DirectoryChooser.html



相關用法


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