JavaFX JavafX externe FXML laden?

lam_tr

Top Contributor
`Hallo zusammen,

kann mir einer sagen wie ich eine externe FXML in meine JavafX Anwendung reinbekomme?

Code:
public void loadAnchorPane(AnchorPane ap, String a) {
   Node p = (Node)FXMLLoader.load(class.classLoader.getResource(a));
   ap.children.setAll(p);
}

Über diese Methode kann ich die FXML nicht wirklich laden, da steht immer

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

Woran liegt das?

Der Inhalt von der FXML im Verzeichnis c:\output\NewDate.fxml
sieht folgendes aus:

Code:
<?xml version="1.0" encoding="UTF-8"?>

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

<AnchorPane id="AnchorPane" style="-fx-background-color: white;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
  >

<children>
		<Text fill="#2b579a" layoutX="14.0" layoutY="66.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Product">
			<font><Font name="Segoe UI Semilight" size="48.0" /></font>
		</Text>
</children>
</AnchorPane>

Was ist da nicht ok?

Viele Grüße
lam
 
Kann mir nicht vorstellen, daß class.ClassLoader funktioniert. Du solltest die Klasse angeben, in der du dich befindest, z.B.:

Code:
FXMLLoader fxmlLoader = new FXMLLoader(SceneManager.class.getResource(resource));

class.classLoader.getResource() gibts bei mir auch gar nicht, da meckert Eclipse (meine IDE) direkt ;-)
 
Hallo Tom299,

selbst mit der Klassenangabe mit dem Loader wird, erscheint die Location Fehler.

Also direkt fxml extern laden geht es nicht?

Viele Grüße
lam
 
Check mal ob deine Resource überhaupt stimmt, also z.B. new File() draus machen und den Pfad anschauen und mal noch im Project die Classpath checken, evtl. fehlt dein Resource-Pfad.

PS: Beim "neuen" Forum bekomm ich grad Augenkrebs
 
Hallo Tom,

das Verzeichnis der Datei stimmt soweit. Im classpath kann ich es nicht eintragen weil ich es woanders hinkopiere. Ich will mit der JavaFX Anwendung eine Preview Ansicht von der fxml machen, deshalb geht's etwas schlecht.

Und ja, das neue Forum ist irgendwie schon etwas anstrengend. 🙂
 

Zurück
Oben