当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。