【发布时间】:2016-09-30 15:48:38
【问题描述】:
我在调用从另一个包含 UI 元素的 Java 文件创建的 Java 文件时遇到了困难。这是我试图调用的 Java 代码:
public class XzibitVideo extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
String path = "Data/Video/Clip.flv";
Media media = new Media(new File(path).toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
MediaView mediaView = new MediaView(mediaPlayer);
BorderPane borderPane = new BorderPane();
borderPane.setCenter(mediaView);
//borderPane.setStyle("-fx-background-color: Black");
//borderPane.setBottom(addToolBar());
Scene scene = new Scene(borderPane, 1024, 800);
scene.setFill(javafx.scene.paint.Color.BLACK);
stage.setTitle("Media Player");
stage.setScene(scene);
stage.show();
mediaPlayer.setAutoPlay(true);
mediaPlayer.setOnError(()->System.out.println("media error"+ mediaPlayer.getError().toString()));
}
}
我尝试了几种方法来调用它,但恐怕它们都不起作用。例如,
XzibitVideo programVideo = new XzibitVideo();
programVideo.start();
XzibitVideo programVideo = new XzibitVideo();
programVideo.run();
XzibitVideo programVideo = new XzibitVideo();
programVideo.main();
*我也尝试过添加参数/参数,但没有成功:
XzibitVideo programVideo = new XzibitVideo();
programVideo.start(Stage stage);
如果有人知道如何正确调用此函数,我将不胜感激!我在这部分工作太久了,我失去了所有希望.. :(
【问题讨论】:
-
programVideo.start()- 但是你的start(Stage stage)方法需要 1 个参数 - 阶段,所以你可能从超类调用 start() 方法,也许超类中的方法什么都不做 -
programVideo.start(舞台舞台); - 这是一个错误。你应该在这里传递一个参数:例如
Stage s = new Stage(); programVideo.start(s); -
XzibitVideo.main(new String[0]);或Application.launch(XzibitVideo.class); -
我尝试了您的所有建议,但它们都向我显示此错误“java.lang.IllegalStateException:仅在事件线程上允许此操作”(我相信这是唯一的部分可能有帮助的错误消息)