Настройка для использования JAVAFX в командной строке - PullRequest
0 голосов
/ 02 мая 2019

Я экспериментирую с FXML.Вот файл Java.Он находится в / Users / morrison / training / java / xml, и все файлы имеют разрешение на чтение.

import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.Parent;
import javafx.fxml.FXMLLoader;
import java.io.IOException;
import java.io.File;
import java.net.URL;
public class Example extends Application
{
    private Stage primary;
    @Override
    public void start(Stage primary) 
    {
        this.primary = primary;
        Parent root = null;
        try
        {
            File f = new File("/Users/morrison/teaching/java/xml/");
            FXMLLoader loader = new FXMLLoader(f.toURI().toURL());
            System.out.println(loader.getLocation());
            root = loader.load(getClass().getResource("Example.fxml"));
            primary.setScene(new Scene(root, 500, 500));
            primary.setTitle("FXML Example");
            primary.show();
        }
        catch(IOException ex){System.err.println("file cant be found");}
    }
}

Здесь находится файл .fxml, который находится в том же каталоге.

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.canvas.Canvas?>
<BorderPane xmlns:fx="http://javafx.com/fxml">
    <top>
        <HBox>
            <Button text="Go!" onAction="#handleGo" fx:id="goButton"/>
            <Button text="Stop!" onAction="#handleStop" fx:id="stopButton"/>
        </HBox>
    </top>
    <center>
        <canvas fx:id="colorField">
        </canvas>
    </center>
</BorderPane>

Когда я запускаю это, мне говорят, что файл FXML не может быть найден.
Есть ли какая-то другая часть, которую мне не хватает?

...