Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试崩溃的JavaFX程序?_Javafx_Media - Fatal编程技术网

如何调试崩溃的JavaFX程序?

如何调试崩溃的JavaFX程序?,javafx,media,Javafx,Media,我正在做一个大学项目,我们被要求选择一个项目来制作,所以我选择了教孩子们ABC。但当我加入媒体时,我的项目突然崩溃了,我试图找出原因,但没有用 package project; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.im

我正在做一个大学项目,我们被要求选择一个项目来制作,所以我选择了教孩子们ABC。但当我加入媒体时,我的项目突然崩溃了,我试图找出原因,但没有用

package project;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.scene.media.*;
import javafx.stage.Stage;

public class Project extends Application {

    private String[] letters = {"A", "B", "C",
            "D", "E", "F", "G", "H",
            "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
            "S", "T", "U", "V", "W", "X", "Y", "Z"};

    private ImageView[] ImageViews = {
            new ImageView("a.jpg"),
            new ImageView("b.jpg"),
            new ImageView("c.jpg"),
            new ImageView("d.jpg"),
            new ImageView("e.jpg"),
            new ImageView("f.jpg"),
            new ImageView("g.jpg"),
            new ImageView("h.jpg"),
            new ImageView("i.jpg"),
            new ImageView("j.jpg"),
            new ImageView("k.jpg"),
            new ImageView("l.jpg"),
            new ImageView("m.jpg"),
            new ImageView("n.jpg"),
            new ImageView("o.jpg"),
            new ImageView("p.jpg"),
            new ImageView("q.jpg"),
            new ImageView("r.jpg"),
            new ImageView("s.jpg"),
            new ImageView("t.jpg"),
            new ImageView("u.jpg"),
            new ImageView("v.jpg"),
            new ImageView("w.jpg"),
            new ImageView("x.jpg"),
            new ImageView("y.jpg"),
            new ImageView("z.jpg")    
    };

    protected MediaView[] sound = {
            new MediaView(new MediaPlayer(new Media("a.mp3"))),
            new MediaView(new MediaPlayer(new Media("b.mp3"))),
            new MediaView(new MediaPlayer(new Media("c.mp3"))),
            new MediaView(new MediaPlayer(new Media("d.mp3"))),
            new MediaView(new MediaPlayer(new Media("e.mp3"))),
            new MediaView(new MediaPlayer(new Media("f.mp3"))),
            new MediaView(new MediaPlayer(new Media("g.mp3"))),
            new MediaView(new MediaPlayer(new Media("h.mp3"))),
            new MediaView(new MediaPlayer(new Media("i.mp3"))),
            new MediaView(new MediaPlayer(new Media("j.mp3"))),
            new MediaView(new MediaPlayer(new Media("k.mp3"))),
            new MediaView(new MediaPlayer(new Media("l.mp3"))),
            new MediaView(new MediaPlayer(new Media("m.mp3"))),
            new MediaView(new MediaPlayer(new Media("n.mp3"))),
            new MediaView(new MediaPlayer(new Media("o.mp3"))),
            new MediaView(new MediaPlayer(new Media("p.mp3"))),
            new MediaView(new MediaPlayer(new Media("q.mp3"))),
            new MediaView(new MediaPlayer(new Media("r.mp3"))),
            new MediaView(new MediaPlayer(new Media("s.mp3"))),
            new MediaView(new MediaPlayer(new Media("t.mp3"))),
            new MediaView(new MediaPlayer(new Media("u.mp3"))),
            new MediaView(new MediaPlayer(new Media("v.mp3"))),
            new MediaView(new MediaPlayer(new Media("w.mp3"))),
            new MediaView(new MediaPlayer(new Media("x.mp3"))),
            new MediaView(new MediaPlayer(new Media("y.mp3"))),
            new MediaView(new MediaPlayer(new Media("z.mp3")))
    };

    @Override

    public void start(Stage primaryStage) {
        ListView<String> l = new ListView<>
                (FXCollections.observableArrayList(letters));
        l.setPrefSize(300, 700);
        l.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

        FlowPane imagePane = new FlowPane(20, 20);
        BorderPane pane = new BorderPane();
        pane.setLeft(new ScrollPane(l));
        pane.setCenter(imagePane);

        l.getSelectionModel().selectedItemProperty().addListener(
                ov -> {
                    imagePane.getChildren().clear();
                    for (Integer i : l.getSelectionModel().getSelectedIndices()) {
                        imagePane.getChildren().add(ImageViews[i]);
                    }
                });

        ListView<String> le = new ListView<>
                (FXCollections.observableArrayList(letters));
        le.setPrefSize(300, 700);
        le.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

        FlowPane soundpane = new FlowPane(10, 10);
        pane.setCenter(soundpane);
        pane.setRight(new ScrollPane(le));

        l.getSelectionModel().selectedItemProperty().addListener(
                ov -> {
                    soundpane.getChildren().clear();
                    for (Integer i : l.getSelectionModel().getSelectedIndices()) {
                        soundpane.getChildren().add(sound[i]);
                    }
                });

        Scene scene = new Scene(pane, 500, 200);
        primaryStage.setTitle("Letters");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
成套工程;
导入javafx.application.application;
导入javafx.collections.FXCollections;
导入javafx.scene.scene;
导入javafx.scene.control.*;
导入javafx.scene.image.ImageView;
导入javafx.scene.layout.*;
导入javafx.scene.media.*;
导入javafx.stage.stage;
公共类项目扩展应用程序{
私有字符串[]字母={A”,“B”,“C”,
“D”、“E”、“F”、“G”、“H”,
“I”、“J”、“K”、“L”、“M”、“N”、“O”、“P”、“Q”、“R”,
“S”、“T”、“U”、“V”、“W”、“X”、“Y”、“Z”};
私有图像视图[]图像视图={
新图像视图(“a.jpg”),
新ImageView(“b.jpg”),
新ImageView(“c.jpg”),
新ImageView(“d.jpg”),
新图像视图(“e.jpg”),
新ImageView(“f.jpg”),
新ImageView(“g.jpg”),
新ImageView(“h.jpg”),
新图像视图(“i.jpg”),
新ImageView(“j.jpg”),
新ImageView(“k.jpg”),
新ImageView(“l.jpg”),
新ImageView(“m.jpg”),
新ImageView(“n.jpg”),
新ImageView(“o.jpg”),
新ImageView(“p.jpg”),
新ImageView(“q.jpg”),
新ImageView(“r.jpg”),
新ImageView(“s.jpg”),
新ImageView(“t.jpg”),
新ImageView(“u.jpg”),
新ImageView(“v.jpg”),
新ImageView(“w.jpg”),
新图像视图(“x.jpg”),
新ImageView(“y.jpg”),
新图像视图(“z.jpg”)
};
受保护的MediaView[]声音={
新媒体视图(新媒体播放器(新媒体(“a.mp3”)),
新媒体视图(新媒体播放器(新媒体(“b.mp3”)),
新媒体视图(新媒体播放器(新媒体(“c.mp3”)),
新媒体视图(新媒体播放器(新媒体(“d.mp3”)),
新媒体视图(新媒体播放器(新媒体(“e.mp3”)),
新媒体视图(新媒体播放器(新媒体(“f.mp3”)),
新媒体视图(新媒体播放器(新媒体(“g.mp3”)),
新媒体视图(新媒体播放器(新媒体(“h.mp3”)),
新媒体视图(新媒体播放器(新媒体(“i.mp3”)),
新媒体视图(新媒体播放器(新媒体(“j.mp3”)),
新媒体视图(新媒体播放器(新媒体(“k.mp3”)),
新媒体视图(新媒体播放器(新媒体(“l.mp3”)),
新媒体视图(新媒体播放器(新媒体(“m.mp3”)),
新媒体视图(新媒体播放器(新媒体(“n.mp3”)),
新媒体视图(新媒体播放器(新媒体(“o.mp3”)),
新媒体视图(新媒体播放器(新媒体(“p.mp3”)),
新媒体视图(新媒体播放器(新媒体(“q.mp3”)),
新媒体视图(新媒体播放器(新媒体(“r.mp3”)),
新媒体视图(新媒体播放器(新媒体(“s.mp3”)),
新媒体视图(新媒体播放器(新媒体(“t.mp3”)),
新媒体视图(新媒体播放器(新媒体(“u.mp3”)),
新媒体视图(新媒体播放器(新媒体(“v.mp3”)),
新媒体视图(新媒体播放器(新媒体(“w.mp3”)),
新媒体视图(新媒体播放器(新媒体(“x.mp3”)),
新媒体视图(新媒体播放器(新媒体(“y.mp3”)),
新媒体视图(新媒体播放器(新媒体(“z.mp3”))
};
@凌驾
公共无效开始(阶段primaryStage){
ListView l=新建ListView
(FXCollections.observableArrayList(信件));
l、 setPrefSize(300700);
l、 getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
FlowPane imagePane=新的FlowPane(20,20);
BorderPane=新的BorderPane();
设置左窗格(新滚动窗格(l));
窗格。设置中心(图像窗格);
l、 getSelectionModel().SelectEditeProperty().addListener(
ov->{
imagePane.getChildren().clear();
对于(整数i:l.getSelectionModel().getSelectedIndices()){
getChildren().add(ImageViews[i]);
}
});
ListView le=新建ListView
(FXCollections.observableArrayList(信件));
le.setPrefSize(300700);
le.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
FlowPane soundpane=新的FlowPane(10,10);
窗格。设置中心(声音窗格);
设置权限(新滚动窗格(le));
l、 getSelectionModel().SelectEditeProperty().addListener(
ov->{
soundpane.getChildren().clear();
对于(整数i:l.getSelectionModel().getSelectedIndices()){
soundpane.getChildren().add(声音[i]);
}
});
场景=新场景(窗格,500,200);
初级阶段。设置标题(“字母”);
初级阶段。场景(场景);
primaryStage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}

我的猜测是处理能力。尝试语音合成,而不是26个音频文件

“突然我的项目崩溃了”很抱歉这个错误,但netbeans一直说mediaview阵列存在一些逻辑错误,我无法修复,希望您理解我说的“mediaview阵列存在一些逻辑错误”-你有没有可能在你的问题中添加准确的错误?如果语音合成不能解决问题,只需尝试精简你的代码并遵循干净代码的原则。干燥等。