Primeiro Projeto JavaFX - Duvidas básicas

Gente, java Fx é muito lokoooo
mas estou com algumas dúvidas:
Antes de eu postar o código, vou colocar minhas dúvidas, ok ?

1º Como Faço o Layout? Tem algum procedimento especial? Só quero colocar os botoes em lugares diferentes;

2º Quando coloco na URL o endereço de uma musica no meu HD, ele da erro , como eu faço pra ele tocar Mp3 , wma ? Só preciso de uma orientação de como fazer;

Segue o Código e o Erro da pergunta 2:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package musica;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
*

  • @author André
    */
    public class Musica extends Application {

    public MediaPlayer MP;
    public Media Media;
    public static String URL;
    public static JFileChooser JFC;

    //Main
    public static void main(String[] args) {
    launch(args);
    }

    public Musica()
    {

    URL = JOptionPane.showInputDialog(null,"Insert Url:");
    MP = new MediaPlayer(new Media(URL));
    MP.setAutoPlay(true);
    
    //Ultimo
    JOptionPane.showMessageDialog(null,"" + MP.getError());
    

    }

    //////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////
    @Override
    public void start(Stage primaryStage) {
    primaryStage.setTitle(“Hello! UPEO Soldier!”);
    Button Play = new Button();
    Play.setText(“Play”);
    Play.setOnAction(new EventHandler() {

         @Override
         public void handle(ActionEvent event1) {
             
             MP.play();
         }
     });
             
     
     Button btn = new Button();
     btn.setText("Say 'Hello World'");
     btn.setOnAction(new EventHandler<ActionEvent>() {
    
         @Override
         public void handle(ActionEvent event) {
             System.out.println("Hello World!");
         }
     });
     
     StackPane root = new StackPane();
     
     root.getChildren().add(btn);
     root.getChildren().add(Play);
     
     
     primaryStage.setScene(new Scene(root, 300, 250));
     primaryStage.show();
    

    }
    }
    [/code]

Erro da pergunta 2 :

[quote]init:
Deleting: E:\Netbeans Projetos\Musica\build\built-jar.properties
deps-jar:
Updating property file: E:\Netbeans Projetos\Musica\build\built-jar.properties
Compiling 1 source file to E:\Netbeans Projetos\Musica\build\classes
compile-single:
run-single:
Exception in Application constructor
Exception in thread “main” java.lang.RuntimeException: Unable to construct Application instance: class musica.Musica
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
… 4 more
Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in opaque part at index 2: C:\Users\André\Music\Iron Maiden\1999 - Ed Hunter\Ed Hunter Cd1\The Trooper.mp3
at javafx.scene.media.Media.(Unknown Source)
at musica.Musica.(Musica.java:39)
… 8 more
Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 2: C:\Users\André\Music\Iron Maiden\1999 - Ed Hunter\Ed Hunter Cd1\The Trooper.mp3
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.checkChars(URI.java:3002)
at java.net.URI$Parser.parse(URI.java:3039)
at java.net.URI.(URI.java:595)
… 10 more
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 7 segundos)[/quote]

Ahh entendi;
file:/C:/Nasi%20-%20Vivo%20na%20cena%20-%20www.musicasparabaixar.org/03.%20Tarde%20Vazia%20-%20www.musicasparabaixar.org.mp3

Vou explicar o que voces devem fazer, caso alguem tiver duvida :

[code]
File selectedFile = jFileChooser1.getSelectedFile();
URI tURI = selectedFile.toURI();
URL tURL = null;
try {
tURL = tURI.toURL();
} catch (MalformedURLException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
String toString = tURL.toString();

    System.out.println(" " + toString );[/code]