2016-11-09 10 views
0

Я пытаюсь сделать 3 папки в приложении Javafx. У меня есть папка Views, которая будет содержать мои представления, и я хочу загрузить файл fxml, сохраненный внутри Views. Я написал этот код внутри start метода:Java: GetResource из другой папки

Parent root = FXMLLoader.load(getClass().getResource("/Views/ProductView.fxml")); 

Мои папки структурированы следующим образом: enter image description here

Видимо GetResources() не может найти свой файл. Что я делаю не так?

+1

Я думаю, что у вас нет '/ View', но'/application/View' вы можете попробовать? Однако вы также можете попробовать «View /', так как ваш основной класс находится в пакете «приложение» – Clayn

ответ

0

попробовать что-то вроде этого что-то вроде этого Parent root=FXMLLoader.load(getClass().getClassloader().getResource("application/Models/Views/ProductView.fxml")

0

Когда я сталкиваюсь с такими проблемами, я обычно запускаю проверку кода, чтобы проверить правильность путей моих файлов с помощью File.exists(). Я играю с файловым трактом, пока не напечатает путь к файлу.

String filePathString = "application/View/ProductView.fxml"; 

File f = new File(filePathString); 
if(f.exists()) { 
    System.out.println("File exists"); 
    System.out.println(f.getAbsoluteFile()); 
} 
0

Проблема заключается в том, что загрузчик не может найти файл FXML ... Таким образом, метод загрузки может быть либо пустым, либо получает InputStream аргумент. И это должно работать:

FXMLLoader loader = new FXMLLoader(); 
FileInputStream fileInputStream = new FileInputStream(new File("src/main/java/CRUD/bnkseekCRUD.fxml")); 
    Parent root = loader.load(fileInputStream); 

По крайней мере, это работает для меня.)))

Смежные вопросы