Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
File 通过文件选择器将mp3文件导入可单击标签_File_Javafx_Mp3 - Fatal编程技术网

File 通过文件选择器将mp3文件导入可单击标签

File 通过文件选择器将mp3文件导入可单击标签,file,javafx,mp3,File,Javafx,Mp3,我想导入mp3文件作为可点击标签,但我不知道如何处理它。我正在通过JavaFX做图形用户界面。下面的图片将解释更多 您可以通过以下操作从目录中获取所有文件: File myfolder = new File("path/to/directory"); File[] allFiles = folder.listFiles(); for (int i = 0; i < all.length; i++) { if (allFiles[i].isFile()) { System.ou

我想导入mp3文件作为可点击标签,但我不知道如何处理它。我正在通过JavaFX做图形用户界面。下面的图片将解释更多


您可以通过以下操作从目录中获取所有文件:

File myfolder = new File("path/to/directory");
File[] allFiles = folder.listFiles();

for (int i = 0; i < all.length; i++) {
  if (allFiles[i].isFile()) {
    System.out.println("File " + allFiles[i].getName());
  } else if (listOfFiles[i].isDirectory()) {
    System.out.println("Directory " + allFiles[i].getName());
  }
}
File myfolder=新文件(“path/to/directory”);
File[]allFiles=folder.listFiles();
for(int i=0;i
但是,您可以在文件中添加标签,而不是将其打印到输出

也许这就是你想要的:

File myfolder = new File("your/path");
File[] allFiles = folder.listFiles();
VBox yourBox = new VBox();

for (int i = 0; i < all.length; i++) {
  if (allFiles[i].isFile()) {
    yourBox.getChildren().add(new Label(allFiles[i].getName());
  } else if (listOfFiles[i].isDirectory()) {
    //Do whatever you want to do with subfolders.
  }
}
File myfolder=新文件(“您的/path”);
File[]allFiles=folder.listFiles();
VBox yourBox=新的VBox();
for(int i=0;i
编辑:要在运行时选择文件夹,可以使用:

目录选择器 或文件选择器,允许选择多个文件

编辑完整代码(已测试):

导入java.awt.Desktop;
导入java.io.File;
导入java.io.IOException;
导入java.util.List;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.geometry.Insets;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.Label;
导入javafx.scene.layout.GridPane;
导入javafx.scene.layout.HBox;
导入javafx.scene.layout.Pane;
导入javafx.scene.layout.VBox;
导入javafx.stage.FileChooser;
导入javafx.stage.stage;
公共类测试扩展了应用程序{
@凌驾
公共作废开始(最后阶段){
stage.setTitle(“文件选择器”);
最终文件选择器FileChooser=新文件选择器();
最终按钮openMultipleButton=新建按钮(“打开文件…”);
VBox yourBox=新的VBox();
openMultipleButton.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(最终操作事件e){
List List=fileChooser.showOpenMultipleDialog(阶段);
如果(列表!=null){
用于(文件:列表){
yourBox.getChildren().add(新标签(file.getName());
}
}
}
});
HBox all=新的HBox();
all.getChildren().addAll(openMultipleButton,yourBox);
最终窗格根组=新VBox(12);
rootGroup.getChildren().addAll(all);
rootGroup.setPrefSize(400400);
舞台场景(新场景(根组));
stage.show();
}
公共静态void main(字符串[]args){
应用程序启动(args);
}
}
希望这有帮助,
Steffi

但我想从该窗口的filechooser导入文件,此代码用于静态选择文件夹…我需要选择要导入的内容。因此,您可以使用DirectoryChooser来选择文件夹。或者使用filechooser并选择多个文件。@FXML private void load(ActionEvent事件){Stage Stage=new Stage();FileChooser FileChooser=new FileChooser();File File=FileChooser.showOpenDialog(stage);if(File!=null){openFile(File);}File[]allFiles=File.listFiles();HBox-box=new HBox();for(int i=0;i<100;i++){box.getChildren().add(新标签(allFiles[i].getName())非常感谢,但是我想要标签的FileInputStream,而不仅仅是打印文件名。
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;

public class test extends Application {

    @Override
    public void start(final Stage stage) {
        stage.setTitle("File Chooser");

        final FileChooser fileChooser = new FileChooser();
        final Button openMultipleButton = new Button("Open Files...");

        VBox yourBox = new VBox();

        openMultipleButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(final ActionEvent e) {
                List<File> list = fileChooser.showOpenMultipleDialog(stage);
                if (list != null) {
                    for (File file : list) {

                        yourBox.getChildren().add(new Label(file.getName()));

                    }
                }
            }
        });

        HBox all = new HBox();
        all.getChildren().addAll(openMultipleButton, yourBox);

        final Pane rootGroup = new VBox(12);
        rootGroup.getChildren().addAll(all);
        rootGroup.setPrefSize(400, 400);

        stage.setScene(new Scene(rootGroup));
        stage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }

    }