Erro JAVAFX

Meu código roda, porém quando clico em “Arquivo” ele dá o seguinte erro:

CONTROLLERCADASTROAUTOR

package sample.control;

import javafx.fxml.FXML;
import javafx.scene.control.DatePicker;
import sample.model.Autor;
import javafx.scene.control.TextField;

import java.time.LocalDate;

public class ControllerJanelaCadastroAutor {

@FXML
private TextField tfAutorNome;

@FXML
private TextField tfAutorCidade;

@FXML
private DatePicker dpAutorData;

public Autor processResult(){
    String nome = tfAutorNome.getText();
    String cidade = tfAutorCidade.getText();
    LocalDate data = dpAutorData.getValue();

    Autor a = new Autor(nome,cidade,data);

    return a;
}

}

CONTROLLERJANELAPRINCIPAL

package sample.control;

import javafx.fxml.FXMLLoader;
import javafx.scene.control.ButtonType;
import javafx.fxml.FXML;
import javafx.scene.control.Dialog;
import javafx.scene.control.ListView;
import javafx.scene.text.Text;
import sample.model.Autor;
import sample.model.ControleColecao;
import java.io.IOException;
import java.util.Optional;

public class ControllerJanelaPrincipal {

@FXML
private ListView<Autor> ltvAutores;

@FXML
private Text txAutorNome;

@FXML
private Text txAutorCidade;

@FXML
private Text txAutorData;

public void initialize(){
    atualizaListaAutores();
}

private void atualizaListaAutores(){
    ltvAutores.getItems().clear();

    for(Autor a:ControleColecao.getInstance().listaAutores()){
        ltvAutores.getItems().add(a);
    }
}

@FXML
private void mostraDetalhesAutor(){
    Autor a = ltvAutores.getSelectionModel().getSelectedItem();

    if(a!=null){
        txAutorNome.setText(a.getNome());
        txAutorData.setText(a.getDataOrigem().toString());
        txAutorCidade.setText(a.getCidadeOrigem());

    }
}

@FXML
private void cadastraAutor(){
    Dialog<ButtonType> dialog = new Dialog<>();
    dialog.setTitle("Cadastro de Autor");

    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("..view/JanelaCadastroAutor.fxml"));

    try{
        dialog.getDialogPane().setContent(loader.load());
        dialog.getDialogPane().getButtonTypes().add(ButtonType.OK);
        dialog.getDialogPane().getButtonTypes().add(ButtonType.CANCEL);

        Optional<ButtonType> res = dialog.showAndWait();

        if(res.isPresent() && res.get() == ButtonType.OK){
            ControllerJanelaCadastroAutor controler = loader.getController();

            Autor a = controler.processResult();

            ControleColecao.getInstance().addAutor(a);
            atualizaListaAutores();
        }

    }catch (IOException e){
        e.printStackTrace();
    }
}

}

JANELACADASTROAUTOR

<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.Text?>
<content>
    <GridPane hgap="10" vgap="10">
        <Text text="Nome"
              GridPane.columnIndex="0"
              GridPane.rowIndex="0"/>
        <TextField fx:id="tfAutorNome"
                   GridPane.columnIndex="1"
                   GridPane.rowIndex="0"/>

        <Text text="Cidade"
              GridPane.columnIndex="0"
              GridPane.rowIndex="1"/>
        <TextField fx:id="tfAutorCidade"
                   GridPane.columnIndex="1"
                   GridPane.rowIndex="1"/>

        <Text text="Data"
              GridPane.columnIndex="0"
              GridPane.rowIndex="2"/>
        <DatePicker fx:id="dpAutorData"
                    GridPane.columnIndex="1"
                    GridPane.rowIndex="2"/>

    </GridPane>
</content>

JANELAPRINCIPAL

<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.Text?>
<top>
    <MenuBar>
        <menus>
            <Menu text="Arquivo">
                <items>
                    <MenuItem text="Cadastra Autor"
                              onAction="#cadastraAutor"/>
                    <MenuItem text="Sair"/>
                </items>
            </Menu>
        </menus>
    </MenuBar>
</top>

<center>
    <GridPane>
        <HBox GridPane.columnIndex="0"
              GridPane.rowIndex="0">
            <ListView fx:id="ltvAutores"
                      onMouseClicked="#mostraDetalhesAutor"/>
            <VBox>
                <Text fx:id="txAutorNome" text="Nome:"/>
                <Text fx:id="txAutorCidade" text="Cidade:"/>
                <Text fx:id="txAutorData" text="Data:"/>
            </VBox>
        </HBox>
    </GridPane>
</center>

AUTOR

package sample.model;

import java.io.Serializable;
import java.time.LocalDate;

public class Autor implements Serializable {

private String nome;
private String cidadeOrigem;
private LocalDate dataOrigem;

public Autor(String nome, String cidadeOrigem, LocalDate dataOrigem) {
    this.nome = nome;
    this.cidadeOrigem = cidadeOrigem;
    this.dataOrigem = dataOrigem;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getCidadeOrigem() {
    return cidadeOrigem;
}

public void setCidadeOrigem(String cidadeOrigem) {
    this.cidadeOrigem = cidadeOrigem;
}

public LocalDate getDataOrigem() {
    return dataOrigem;
}

public void setDataOrigem(LocalDate dataOrigem) {
    this.dataOrigem = dataOrigem;
}

}

CONTROLECOLECAO

package sample.model;

import java.io.*;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

public class ControleColecao {

private static String ARQ_TXT="colecao.txt";
private static String ARQ_BIN="colecao.bin";

private ArrayList<Autor> listaAutores;

private static  ControleColecao instance;

private ControleColecao() {
    listaAutores = new ArrayList<>();
}

public static  ControleColecao getInstance(){
    if(instance == null){
        instance = new ControleColecao();
    }
    return instance;
}

public int addAutor(Autor a){
    if(buscaAutor(a.getNome())==null){
        listaAutores.add(a);
        return 1;
    }
    return -1;
}

public Autor buscaAutor(String nome){
    for(Autor a:listaAutores){
        if(a.getNome().equals(nome)){
            return a;
        }
    }
    return  null;
}

public List<Autor> listaAutores(){
    return listaAutores;
}

public void salvaTXT() throws IOException{

    File f = new File(ARQ_TXT);
    FileWriter fw = new FileWriter(f);
    BufferedWriter bw = new BufferedWriter(fw);

    bw.write("Autores:"+listaAutores.size()+"\n");
    for (Autor a:listaAutores){
        bw.write(a.getNome()+";"+a.getCidadeOrigem()+";"+a.getDataOrigem());
        bw.write("\n");
    }
    bw.close();
    fw.close();
}

public void leTXT() throws IOException{
    listaAutores.clear(); //para garantir que não aja ninguém no arraylist

    File f = new File(ARQ_TXT);
    FileReader fr = new FileReader(f);
    BufferedReader br = new BufferedReader(fr);

    String linha = br.readLine();
    int nAutores = Integer.valueOf(linha.split(":")[1]);
    while(nAutores>0){
        linha=br.readLine();
        String[] tokens=linha.split(";");

        String nome = tokens[0];
        String cidade = tokens[1];
        LocalDate origem = LocalDate.parse(tokens[2]);

        Autor a = new Autor(nome, cidade, origem);
        addAutor(a);
        nAutores--;
    }

    br.close();
    fr.close();
}

public void salvaBIN() throws IOException{
    File f = new File(ARQ_BIN);
    FileOutputStream fo = new FileOutputStream(f);
    ObjectOutputStream oos = new ObjectOutputStream(fo);

    oos.writeObject(listaAutores);

    oos.close();
    fo.close();
}

public void leBIN() throws IOException{
    File f = new File(ARQ_BIN);
    FileInputStream fi = new FileInputStream(f);
    ObjectInputStream ois = new ObjectInputStream(fi);
}

}

MAIN

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import sample.model.ControleColecao;

import java.io.IOException;

public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("view/JanelaPrincipal.fxml"));
    primaryStage.setTitle("Hello World");
    primaryStage.setScene(new Scene(root, 300, 275));
    primaryStage.show();
}

@Override
public void init(){
    try{
        ControleColecao.getInstance().leBIN();
    }catch (IOException e){
        System.out.println("Arquivo não encontrado!! Primeira execução???");
    }
}

@Override
public void stop(){
    try{
        ControleColecao.getInstance().salvaBIN();
    }catch(IOException e){
        System.out.println("Problema com amarzenamento!!"+e.getMessage());
    }
}

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

}

URGENTE?
Lembre-se q isso aqui é uma comunidade.




Metade da galera que vai postar aqui chega desesperado e dizendo que é urgente, cara. Loucura.

Enfim, vamo lá: O que você tá fazendo?

Acho que todo mundo chega até aqui com uma certa urgência kkkk.
Então, preciso desenvolver um sistema de controle de coleção de discos de vinil, porém só estou na parte para cadastrar o Autor e simplesmente empaquei com esse erro. A janela roda normalmente, porém quando clico em “Arquivo”, que era para destinar a janela que faz o cadastro do autor, simplesmente dá esse erro enorme que mandei no print.

(Obrigada por me responder tão rápido, realmente é urgente hahuhau)

Dá uma olhada nesse link pra ver se te dá uma clareada.