JavaFX IllegalArgumentException

JavaFX IllegalArgumentException,java,audio,javafx,Java,Audio,Javafx,我试图使按钮,当点击他们会播放声音。但是我有个麻烦。我搞不清楚,确切地说。这是我的密码: import javafx.application.Application; import javafx.event.Event; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import java

我试图使按钮,当点击他们会播放声音。但是我有个麻烦。我搞不清楚,确切地说。这是我的密码:

import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

public class Ms extends Application {
    @Override
    public void start(Stage primaryStage) {

        VBox vbox = new VBox(50);
        vbox.setOnScroll(null);

        Button button1 = new Button("1");
        Button button2 = new Button("2");
        Button button3 = new Button("3");
        Button button4 = new Button("4");
        Button button5 = new Button("5");
        Button button6 = new Button("6");
        HBox.setHgrow(button1, Priority.ALWAYS);
        HBox.setHgrow(button2, Priority.ALWAYS);
        button1.setPrefSize(367, 70);
        button2.setPrefSize(367, 70);
        button3.setPrefSize(367, 70);
        button4.setPrefSize(367, 70);
        button5.setPrefSize(367, 70);
        button6.setPrefSize(367, 70);
        button1.setOnMouseClicked(new EventHandler<Event>() {

            @Override
            public void handle(Event event) {
                Media hit = new Media("/Users/ErcumentKaya/Desktop/denek.mp3");
                MediaPlayer mediaPlayer = new MediaPlayer(hit);
                mediaPlayer.play();

            }
        });
        vbox.setSpacing(0);
        vbox.getChildren().addAll(button1, button2, button3, button4, button5, button6);

        ScrollPane scrollPane = new ScrollPane(vbox);

        BorderPane root = new BorderPane(scrollPane);
        root.setPadding(new Insets(15));

        Scene scene = new Scene(root, 400, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
导入javafx.application.application;
导入javafx.event.event;
导入javafx.event.EventHandler;
导入javafx.geometry.Insets;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.ScrollPane;
导入javafx.scene.layout.BorderPane;
导入javafx.scene.layout.HBox;
导入javafx.scene.layout.Priority;
导入javafx.scene.layout.VBox;
导入javafx.stage.stage;
导入javafx.scene.media.media;
导入javafx.scene.media.MediaPlayer;
公共类Ms扩展应用程序{
@凌驾
公共无效开始(阶段primaryStage){
VBox VBox=新的VBox(50);
vbox.setOnScroll(空);
按钮1=新按钮(“1”);
按钮2=新按钮(“2”);
按钮按钮3=新按钮(“3”);
按钮按钮4=新按钮(“4”);
按钮按钮5=新按钮(“5”);
按钮按钮6=新按钮(“6”);
HBox.setHgrow(按钮1,优先级。始终);
HBox.setHgrow(按钮2,优先级。始终);
按钮1.setPrefSize(367,70);
按钮2.setPrefSize(367,70);
按钮3.setPrefSize(367,70);
按钮4.setPrefSize(367,70);
按钮5.setPrefSize(367,70);
按钮6.setPrefSize(367,70);
button1.setOnMouseClicked(新的EventHandler(){
@凌驾
公共无效句柄(事件){
媒体点击率=新媒体(“/Users/ErcumentKaya/Desktop/denek.mp3”);
MediaPlayer=新的MediaPlayer(点击);
mediaPlayer.play();
}
});
vbox.setspace(0);
vbox.getChildren().addAll(按钮1、按钮2、按钮3、按钮4、按钮5、按钮6);
ScrollPane ScrollPane=新的ScrollPane(vbox);
BorderPane根=新的BorderPane(滚动窗格);
根。设置填充(新插图(15));
场景=新场景(根,400400);
初级阶段。场景(场景);
primaryStage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}
我的错误消息是

Exception in thread "JavaFX Application Thread"
java.lang.IllegalArgumentException: uri.getScheme() == null! uri ==
'/Users/ErcumentKaya/Desktop/denek.mp3'
      at com.sun.media.jfxmedia.locator.Locator.<init>(Locator.java:211)
      at javafx.scene.media.Media.<init>(Media.java:391)
      at Ms$1.handle(Ms.java:42)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
      at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
      at javafx.event.Event.fireEvent(Event.java:198)
      at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3470)
      at javafx.scene.Scene$ClickGenerator.access$8100(Scene.java:3398)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3766)
      at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
      at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
      at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$355(GlassViewEventHandler.java:388)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387)
      at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
      at com.sun.glass.ui.View.notifyMouse(View.java:937)
线程“JavaFX应用程序线程”中的异常 java.lang.IllegalArgumentException:uri.getScheme()==null!uri== “/Users/ErcumentKaya/Desktop/denek.mp3” 位于com.sun.media.jfxmedia.locator.locator.(locator.java:211) 在javafx.scene.media.media.(media.java:391) 1.handle美元(Ms.java:42) 在com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)上 位于com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 位于com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 在com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)上 在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 位于com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 位于com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 位于com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 位于com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 位于com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 位于com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 位于com.sun.javafx.event.EventUtil.fireventimpl(EventUtil.java:74) 位于com.sun.javafx.event.EventUtil.firevent(EventUtil.java:54) 位于javafx.event.event.fireEvent(event.java:198) 在javafx.scene.scene$ClickGenerator.postProcess(scene.java:3470) 在javafx.scene.scene$ClickGenerator.access$8100(scene.java:3398) 位于javafx.scene.scene$MouseHandler.process(scene.java:3766) 在javafx.scene.scene$MouseHandler.access$1500(scene.java:3485) 位于javafx.scene.scene.impl_processMouseEvent(scene.java:1762) 位于javafx.scene.scene$ScenePeerListener.mouseEvent(scene.java:2494) 位于com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352) 位于com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275) 位于java.security.AccessController.doPrivileged(本机方法) 位于com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$355(GlassViewEventHandler.java:388) 位于com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) 位于com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387) 位于com.sun.glass.ui.View.handleMouseEvent(View.java:555) 位于com.sun.glass.ui.View.notifyMouse(View.java:937) 以下章节介绍了这一点:

公共媒体(java.lang.String源代码)

构造一个媒体实例。这是指定媒体源的唯一方法。源必须表示有效的URI,并且是不可变的仅支持HTTP、文件和JAR URL。如果提供的URL无效,则将引发异常

URL必须是
文件:
URL。

这在以下内容中有介绍:

公共媒体(java.lang.String源代码)

构造
File f = new File("path\\to\\file.mp3");
Media hit = new Media(f.toURI().toString());