Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaFX загрузка FXML / 2 сообщений из 2, страница 1 из 1
14.02.2015, 15:47
    #38879774
sergey321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaFX загрузка FXML
День добрый, господа.
Решил поюзать JavaFX с FXML.
простой тестовый пример и получаю вот такую ошибку при запуске из по браузера.
В NB IDE все работает, структура пакетов проверена. Понимаю, что не находит FXML файлик в jar. Все пути проверил, перерыл все, что смог.

Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)


jdk 1.8
Netbeans 8.0.2
JavaFX 2.1
вот исходники Test.java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
package test;

import java.net.URL;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import test.resources.FXMLDocumentController;

public class Test extends Application
{
    
    @Override
    public void start(Stage stage) throws Exception
    {        
        Scene scene = new Scene(getParent());
        stage.setScene(scene);
        stage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }
    
    private Parent getParent() throws Exception
    {
        String sceneFile = "resources/FXMLDocument.fxml";
        Parent root = null;
        URL    url  = null;
        try
        {
            url  = getClass().getResource(sceneFile);
            FXMLLoader loader = new FXMLLoader(getClass().getResource(sceneFile));
            root = loader.load();
        }
        catch ( Exception ex )
        {
            System.out.println("    ----------------------------------------\n");            
            System.out.println("Exception on FXMLLoader.load()" );
            System.out.println("Current path to scene: " + sceneFile);
            System.out.println("  * url: " + url );
            System.out.println("  * " + ex );
            System.out.println("    ----------------------------------------\n" );
            throw ex;
        }        
        return root;
    }    
}



Вот FXMLDocumentController.java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
package test.resources;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

public class FXMLDocumentController implements Initializable
{
    
    @FXML
    private Label label;
    
    @FXML
    private void handleButtonAction(ActionEvent event)
    {
        System.out.println("You clicked me!");
        label.setText("Hello World!");
    }
    
    @Override
    public void initialize(URL url, ResourceBundle rb)
    {
        
    }        
}



И собственно FXML

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="test.resources.FXMLDocumentController">
    <children>
        <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
        <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
    </children>
</AnchorPane>




Убедительно прошу по существу. Заранее всем спасибо.
...
Рейтинг: 0 / 0
14.02.2015, 17:02
    #38879804
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaFX загрузка FXML
Код: java
1.
String sceneFile = "resources/FXMLDocument.fxml";


В JavaFXне шарю, но общее у всех веб технологий то, что надо прописывать контекстный путь или относительный путь. А у тебя это не так. К тому же если через браузер нужный файл не находит, в консоли браузера обычно пишет соответствующую ошибку. И по ней можешь увидеть, куда браузер пытается стучаться и правильный ли это путь.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaFX загрузка FXML / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]