带有视频内容的JFXPanel 在swing中进行窗口跳转会丢失视频内容

我按照oracle显示的demo做的,可以在启动时有视频内容,但是经过跳转之后,视频内容就丢失了;

https://docs.oracle.com/javase/8/javafx/interoperability-tutorial/swing-fx-interoperability.htm

下面是我得demo;请熟悉这方面的帮忙看看,多谢

package com.king.code;

import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;

public class VideoDemo {
    public static void initVideoFrame() {
        JFrame indexFrame = new JFrame ( );
        indexFrame.setUndecorated (true);
        indexFrame.setBounds (0, 0, 600, 700);
        indexFrame.setBackground (Color.white);
        Container root = indexFrame.getContentPane ( );
        root.setLayout (null);
        JButton button = new JButton ("按钮");
        button.setBounds (indexFrame.getWidth ( ) / 2 - 30, 10, 80, 20);
        button.setVisible (true);
        button.addMouseListener (new MouseAdapter ( ) {
            @Override
            public void mouseClicked(MouseEvent e) {
                indexFrame.dispose ( );
                OrtherFrame ortherFrame = new OrtherFrame ( );
            }
        });
        root.add (button);
        JFXPanel jfxPanel = new JFXPanel ( );
        jfxPanel.setBounds (0, 40, 540, 320);
        jfxPanel.setVisible (true);
        root.add (jfxPanel);
        indexFrame.setVisible (true);
        Platform.runLater (new Runnable ( ) {
            @Override
            public void run() {
                initVFXPanel (jfxPanel);
            }
        });
    }


    private static class OrtherFrame extends JFrame {
        public OrtherFrame() throws HeadlessException {
            setUndecorated (true);
            setBounds (0, 0, 400, 500);
            setBackground (Color.white);
            Container root = getContentPane ( );
            root.setLayout (null);
            JButton button = new JButton ("首页");
            button.setBounds (getWidth ( ) / 2 - 30, 10, 90, 20);
            button.setVisible (true);
            button.addMouseListener (new MouseAdapter ( ) {
                @Override
                public void mouseClicked(MouseEvent e) {
                    SwingUtilities.invokeLater (new Runnable ( ) {
                        @Override
                        public void run() {
                            dispose ( );
                            VideoDemo.initVideoFrame ( );
                        }
                    });
                }
            });
            root.add (button);
            setVisible (true);
        }
    }

    private static void initVFXPanel(JFXPanel VFXPanel) {
        Scene scene = creatScene ( );
        VFXPanel.setScene (scene);
    }

    /**
     * 视频播放
     */
    private static Scene creatScene() {

        URL url = VideoDemo.class.getClassLoader ( ).getResource ("video/demo.mp4");

        assert url != null;
        Media media = new Media (url.toString ( ));
        MediaPlayer player = new MediaPlayer (media);
        MediaView viewer = new MediaView (player);

        StackPane root = new StackPane ( );
        Scene scene = new Scene (root);


        // resize video based on screen size
        viewer.fitWidthProperty ( ).set (540); //手动设定解析度(宽度)
        viewer.fitHeightProperty ( ).set (320); //手动设定解析度(高度)

        viewer.setPreserveRatio (true);
        // add video to stackpane
        root.getChildren ( ).add (viewer);
        player.setCycleCount (MediaPlayer.INDEFINITE); //循环播放
        player.play ( );
        return (scene);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater (new Runnable ( ) {
            @Override
            public void run() {
                VideoDemo.initVideoFrame ( );
            }
        });

    }

}

 

窗口跳转以后是否可以重新加载视频呢?