如何在 java jframe 中嵌入视频
How to embed a video in a java jframe
如何在 java jframe 中嵌入视频
没有任何教程
我试过这个代码但是有一个异常
import javafx.application.Application;
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 javafx.stage.Stage;
public class videoFrame extends Application {
private String VIDEO_URL = getClass().getResource("E:\Mohamed\Videos\The Juggler المشعوذ (Film)").toString();
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
launch();
}
@Override
public void start(Stage palco) throws Exception {
Media media = new Media(VIDEO_URL); // 1
MediaPlayer mediaPlayer = new MediaPlayer(media); // 2
MediaView mediaView = new MediaView(mediaPlayer); // 3
StackPane raiz = new StackPane();
raiz.getChildren().add(mediaView); // 4
Scene cena = new Scene(raiz, 600, 400);
palco.setTitle("Tocando Video em JavaFX");
palco.setScene(cena);
palco.show();
mediaPlayer.play(); // 4
}
}
// Variables declaration - do not modify
// End of variables declaration
错误
run:
Exception in Application constructor
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Unable to construct Application instance: class videoFrame
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication5(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication11(LauncherImpl.java:819)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait5(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null3(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater4(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null8(WinApplication.java:191)
... 1 more
Caused by: java.lang.NullPointerException
at videoFrame.<init>(videoFrame.java:11)
... 13 more
Exception running application videoFrame
C:\Users\moham\AppData\Local\NetBeans\Cache.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 2 seconds)
下一行是为您提供 NullPointer 的内容。您可以通过替换以下行来修复它
private String VIDEO_URL = getClass().getResource("E:\Mohamed\Videos\The Juggler المشعوذ (Film)").toString();
用这条线
private String VIDEO_URL = new File("E:\Mohamed\Videos\The Juggler المشعوذ (Film)").toURI().toURL().toString()
来自 http://tutorials.jenkov.com/javafx/media.html 的可运行示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import java.io.File;
import java.net.MalformedURLException;
public class MediaExample extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) throws MalformedURLException {
File mediaFile = new File("assets/media/Golden-48569.mp4");
Media media = new Media(mediaFile.toURI().toURL().toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
MediaView mediaView = new MediaView(mediaPlayer);
Scene scene = new Scene(new Pane(mediaView), 1024, 800);
primaryStage.setScene(scene);
primaryStage.show();
mediaPlayer.play();
}
}
如何在 java jframe 中嵌入视频 没有任何教程
我试过这个代码但是有一个异常
import javafx.application.Application;
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 javafx.stage.Stage;
public class videoFrame extends Application {
private String VIDEO_URL = getClass().getResource("E:\Mohamed\Videos\The Juggler المشعوذ (Film)").toString();
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
launch();
}
@Override
public void start(Stage palco) throws Exception {
Media media = new Media(VIDEO_URL); // 1
MediaPlayer mediaPlayer = new MediaPlayer(media); // 2
MediaView mediaView = new MediaView(mediaPlayer); // 3
StackPane raiz = new StackPane();
raiz.getChildren().add(mediaView); // 4
Scene cena = new Scene(raiz, 600, 400);
palco.setTitle("Tocando Video em JavaFX");
palco.setScene(cena);
palco.show();
mediaPlayer.play(); // 4
}
}
// Variables declaration - do not modify
// End of variables declaration
错误
run:
Exception in Application constructor
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Unable to construct Application instance: class videoFrame
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication5(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication11(LauncherImpl.java:819)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait5(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null3(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater4(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null8(WinApplication.java:191)
... 1 more
Caused by: java.lang.NullPointerException
at videoFrame.<init>(videoFrame.java:11)
... 13 more
Exception running application videoFrame
C:\Users\moham\AppData\Local\NetBeans\Cache.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 2 seconds)
下一行是为您提供 NullPointer 的内容。您可以通过替换以下行来修复它
private String VIDEO_URL = getClass().getResource("E:\Mohamed\Videos\The Juggler المشعوذ (Film)").toString();
用这条线
private String VIDEO_URL = new File("E:\Mohamed\Videos\The Juggler المشعوذ (Film)").toURI().toURL().toString()
来自 http://tutorials.jenkov.com/javafx/media.html 的可运行示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import java.io.File;
import java.net.MalformedURLException;
public class MediaExample extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) throws MalformedURLException {
File mediaFile = new File("assets/media/Golden-48569.mp4");
Media media = new Media(mediaFile.toURI().toURL().toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
MediaView mediaView = new MediaView(mediaPlayer);
Scene scene = new Scene(new Pane(mediaView), 1024, 800);
primaryStage.setScene(scene);
primaryStage.show();
mediaPlayer.play();
}
}