ImageIcon icon = new ImageIcon("Bilder/IMG_(1).jpg");
// gegeben bspw. folgendes Package
package aaa.bbb.ccc;
// Bilder im Pfad: aaa/bbb/ccc/MyClass
class MyClass
{
// ...
myLabel.setIcon( new ImageIcon( MyClass.class.getResource("myPic.png")) );
das würde mich doch sehr wundern ... Unterstriche benutzen wird hier in fast JEDEM Dateinamen!!Mein Fehler sorry IMG_(1).jpg geht nicht wegen _ Underline!
//absoluter Pfad
//Media musicFile = new Media("file:/Users/h0ax3s/Documents/workspace/Monopoly/FXMonopoly/GameOfThronesTheme.mp3");
//relativer Pfad
Media musicFile = new Media("file:../FXMonopoly/GameOfThronesTheme.mp3");
MediaPlayer mediaPlayer = new MediaPlayer(musicFile);
Exception in thread "Thread-4" java.lang.IllegalArgumentException: URI is not hierarchical
at java.base/java.io.File.<init>(File.java:418)
at javafx.media/com.sun.media.jfxmedia.locator.ConnectionHolder$FileConnectionHolder.openFile(ConnectionHolder.java:217)
at javafx.media/com.sun.media.jfxmedia.locator.ConnectionHolder$FileConnectionHolder.<init>(ConnectionHolder.java:176)
at javafx.media/com.sun.media.jfxmedia.locator.ConnectionHolder.createFileConnectionHolder(ConnectionHolder.java:63)
at javafx.media/com.sun.media.jfxmedia.locator.Locator.createConnectionHolder(Locator.java:608)
at javafx.media/com.sun.media.jfxmediaimpl.MetadataParserImpl.run(MetadataParserImpl.java:102)
@FXML
void clickButRegeln(ActionEvent event) throws IOException {
Parent regelwerkParent = FXMLLoader.load(getClass().getResource("/Users/h0ax3s/Documents/workspace/Monopoly/FXMonopoly/src/monopoly/ansicht/regelwerk/Regelwerk.fxml"));
Scene regelwerkScene = new Scene(regelwerkParent);
Stage window = (Stage) ( (Node)event.getSource()).getScene().getWindow();
window.setScene(regelwerkScene);
window.show();
}
Caused by: java.lang.NullPointerException: Location is required.
Ist scho ok. Meine Beiträge darf man manchmal nicht zu ernst sehen...Sie wars, sie wars, äh, er wars, er wars.
Sowieso nichtMeine Beiträge darf man manchmal nicht zu ernst sehen...
Die Namen ("Pfadangaben") von Class#getResource() bzw. Class#getResourceAsStream bezeichnen Ressourcen, die vom jeweiligen ClassLoader geladen werden. Sie beziehen sich also nicht auf das Dateisystem sondern auf die "Pakete" des Programms. Werden sie ohne führenden '/' angegeben, wird davon ausgegangen, dass sich die Ressource im selben Paket wie die Klasse befindet, für getResource() bzw. getResourceAsStream() aufgerufen wurde.
Nein. Du kannst Ressourcen innerhalb Deines Projekts ablegen, wo Du willst. Wenn Du allerdings keinen "absoluten" Pfad angibst, wird von dem Package ausgegangen., in dem sich die Klasse befindet, deren getResource()-Methode Du aufgerufen hast.Das heißt ich müsste alle betreffenden FXML-Dateien im selben Package liegen haben wie die Ansichtsklasse fürs Hauptmenü?
Erstens kann ich nichts falsches daran erkennen, zusammengehörige Dinge auch zusammen abzulegen. Zweitens kannst Du die Ressourcen theoretisch in anderen Packages ablegen und drittens muss man zwischen Übersetzungs- und Laufzeit unterscheiden. Zur Übersetzungszeit können die Ressourcen theoretisch überall auf dieser Welt liegen, so lange das Buildsystem dafür sorgt, dass es am Ende ins richtige Package kommt.Das macht ja wenig Sinn, bezogen auf die Übersichtlichkeit. Immerhin bauen noch 5 andere Scene auf das Hauptmenü auf.
getClass().getResource("logo.png")
, dann würde man den Quelltext unter src/main/java/org/javaforum/app/Main.java ablegen und die Ressource unter src/main/resources/org/javaforum/app/logo.png. Im am Ende gebauten Jar-File findet man beide Dateien im Jar unter org/javaforum/app.getClass().getResource("/i18n/bundle.properties")
, dann müsste man die Datei bundle.properties unter src/main/resources/i18n/bundle.properties speichern, damit sie gefunden wird.