Я прочитал все вопросы об этом в stackoverflow, и я не использовал что-то, что сработало. У меня есть базовый fxml, созданный с использованием JavaFX Scene Builder 1.1 при использовании Java 1.7.
Я просто хочу загрузить файл ... но все, кажется, указывает на нулевое местоположение, что означает, что он не может его найти. Я не понимаю, почему. У меня есть 18 попыток/уловов, чтобы показать 18 различных возможностей для его работы, но он не может их найти. Эти примеры взяты из некоторых вопросов stackoverflow как «действительные принятые ответы». Что мне здесь не хватает? Все компилируется, поэтому я не думаю, что мне не хватает SDK или чего-то серьезного.
Журнал печатает от 1 до 18 с NullPointerException на 18-й попытке/улове, в котором говорится, что требуется местоположение NullPointer....
Просмотреть сообщение на imgur.com
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.net.URL;
public class OptionsToggleMenu extends Application {
public void launchTheThing(String... args){ //runs this on the Main application's main method.
launch(args);
}
@Override
public void start(Stage primaryStage) {
int failures = 0;
try{
Parent root1 = new Parent() {
};
try{
root1 = FXMLLoader.load(getClass().getResource("AdventureLibrary/test.fxml"));
System.out.println(null == root1);
}
catch(Exception e){
System.out.println(1);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("AdventureLibrary/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(2);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getResource("bin/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(3);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("bin/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(4);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getResource("test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(5);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(6);
failures++;
}
try{
root1 = FXMLLoader.load(getClass().getResource("/AdventureLibrary/test.fxml"));
System.out.println(null == root1);
}
catch(Exception e){
System.out.println(7);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("/AdventureLibrary/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(8);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getResource("/bin/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(9);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("/bin/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(10);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getResource("/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(11);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(12);
failures++;
}
try{
root1 = FXMLLoader.load(getClass().getResource("/resources/test.fxml"));
System.out.println(null == root1);
}
catch(Exception e){
System.out.println(13);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("/resources/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(14);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getResource("resources/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(15);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("resources/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(16);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getResource("test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(17);
failures++;
}
try{
Parent root2 = FXMLLoader.load(getClass().getClassLoader().getResource("/test.fxml"));
System.out.println(null == root2);
}
catch(Exception e){
System.out.println(18);
System.out.println(e);
failures++;
}
System.out.println("There are this many failures: " + failures+"/18");
Scene scene = new Scene(root1, 300, 275);
primaryStage.setTitle("FXML Welcome");
primaryStage.setScene(scene);
primaryStage.show();
}
catch(Exception e)
{
System.out.println("XX"+e);
}
}
}
Изменить: добавление кода, который вызывает resources/fxml/test.fxml, также не увенчалось успехом.
System.out.println(e);
наe.printStackTrace();
(хотя я не думаю, что это полезно...) 2. Я не очень хорошо знаком с IntelliJ, поэтому я не знаю точного поведения сборки, но дело в том, что файл fxml должен быть доступны во время выполнения. Все, что вы показываете, - это каталог исходного кода, который, очевидно, не имеет значения, если проблема заключается в том, что файл fxml не может быть найден во время выполнения. Как выглядит структура каталогов развертывания и где в ней находятся файлы fxml? - person James_D   schedule 25.02.2016src/resources
, затем очистил и восстановить. - person James_D   schedule 25.02.2016