SystemTray com JavaFX

Eu crio um ícone na bandeja do windows dessa forma

@Override
    public void start(Stage stage) {
        loader = new Loader("/fxml/Menu.fxml");
        //cria menu da bandeja
        PopupMenu popup = new PopupMenu();
        //cria opção abrir
        MenuItem mostrarItem = new MenuItem("Abrir");
        mostrarItem.addActionListener(e -> {
            Platform.runLater(() -> {
                Stage s = loader.newStage("DerbyServer");
                s.showAndWait();
            });
        });
        popup.add(mostrarItem);
        //cria opção sair
        MenuItem sairItem = new MenuItem("Sair");
        sairItem.addActionListener(e -> {
            System.exit(0);
        });
        popup.add(sairItem);
        bandeja = new Bandeja();
        bandeja.start("imagens/icone_bandeja.png", "DerbyServer", popup);
    }

Esse código cria um popup com duas opções (abrir e sair), ao executar o programa ele funciona normalmente, quando eu clico em abrir ele realmente abre meu Stage do JavaFx, mas quando eu fecho e tento abrir de novo ele não abre mais a GUI, mas o programa continua executando normalmente… Como acerto isso?

Em seu método public void start(final Stage stage) configure

Platform.setImplicitExit(false);

Veja: https://gist.github.com/jewelsea/e231e89e8d36ef4e5d8a

SystemTray no JavaFX é um gambiarra da porra.

1 curtida
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: AnchorPane[id=AnchorPane, styleClass=root]is already set as root of another scene

Acredito que como agora o programa não fecha totalmente (eu acho) ele não deixa eu atribuir o node a outro stage, se eu criar outro node isso faz com que meu programa fique inchado? abrindo telas sem fechar?