Hallo zusammen
Ich bin neu im Forum und ein absoluter Java Beginner und weiss auch nicht genau wie ich mein Problem Beschreiben soll.
Nutzen tu ich Java mit Eclipse und Scene Builder unter Windows 10.
Jedenfalls möchte ich ein Programm schreiben, bei dem man einige Lebensmittel eingeben kann.
Dazu habe ich drei Packages erstellet, einmal mit einer Main Class, einer Model Class und einem Controller. Ich arbeite zudem mit Scene Builder und habe zwei fxml Dateien einmal den Layer und einmal die Übersicht. Wenn ich das Programm ausführen will, lädt leider nur der Root Layer.
Im Code selbst habe ich eigentlich keine Fehlermeldungen mehr ausser folgendem
Beim Kursiv geschriebenen kommt noch folgende Info The value of the field LebensmittelOverviewController.Main is not used das sollte eigentlich mit der Main verbunden sein.
Nun in der Konsole kommen jedoch ein ganzer Haufen von Fehler vor, zumindest hat es den Anschein.
Juli 05, 2021 8:55:11 AM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 16 by JavaFX runtime of version 11.0.2
Juli 05, 2021 8:55:12 AM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 16 by JavaFX runtime of version 11.0.2
javafx.fxml.LoadException:
/C:/Users/User/Desktop/Java/Workspace/Notvorrat_Beta/target/classes/rb/notvorrat/view/PersonUbersicht.fxml:46
at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2603)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
at rb.notvorrat.Main.showPersonUbersicht(Main.java:87)
at rb.notvorrat.Main.start(Main.java:57)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.IllegalArgumentException: Can not set javafx.scene.control.TableView field rb.notvorrat.view.LebensmittelOverviewController.LebensmittelTable to javafx.scene.layout.GridPane
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
at java.base/java.lang.reflect.Field.set(Field.java:793)
at javafx.fxml/javafx.fxml.FXMLLoader.injectFields(FXMLLoader.java:1174)
at javafx.fxml/javafx.fxml.FXMLLoader.access$1600(FXMLLoader.java:105)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processValue(FXMLLoader.java:865)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:759)
at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
... 13 more
Ich hoffe das ist einigermassen gut beschrieben.
Wäre toll wenn mir jemand helfen könnte.
Viele Grüsse
Schnörz
Ich bin neu im Forum und ein absoluter Java Beginner und weiss auch nicht genau wie ich mein Problem Beschreiben soll.
Nutzen tu ich Java mit Eclipse und Scene Builder unter Windows 10.
Jedenfalls möchte ich ein Programm schreiben, bei dem man einige Lebensmittel eingeben kann.
Dazu habe ich drei Packages erstellet, einmal mit einer Main Class, einer Model Class und einem Controller. Ich arbeite zudem mit Scene Builder und habe zwei fxml Dateien einmal den Layer und einmal die Übersicht. Wenn ich das Programm ausführen will, lädt leider nur der Root Layer.
Im Code selbst habe ich eigentlich keine Fehlermeldungen mehr ausser folgendem
Java:
[/B]
package rb.notvorrat.view;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import rb.notvorrat.Main;
import rb.notvorrat.model.Lebensmittel;
public class LebensmittelOverviewController {
@FXML
private TableView<Lebensmittel> LebensmittelTable;
@FXML
private TableColumn<Lebensmittel, String> NameColumn;
@FXML
private TableColumn<Lebensmittel, String> BeschreibungColumn;
@FXML
private Label NameLabel;
@FXML
private Label BeschreibungLabel;
@FXML
private Label AblaufdatumLabel;
@FXML
private Label AnzahlLabel;
[I] [B] // Reference to the main application.
private Main Main;[/B][/I]
/**
* The constructor.
* The constructor is called before the initialize() method.
*/
public LebensmittelOverviewController() {
}
/**
* Initializes the controller class. This method is automatically called
* after the fxml file has been loaded.
*/
@FXML
private void initialize() {
// Initialize the person table with the two columns.
NameColumn.setCellValueFactory(cellData -> cellData.getValue().NameProperty());
BeschreibungColumn.setCellValueFactory(cellData -> cellData.getValue().BeschreibungProperty());
}
/**
* Is called by the main application to give a reference back to itself.
*
* @param Main
*/
public void setMain(Main Main) {
this.Main = Main;
// Add observable list data to the table
LebensmittelTable.setItems(Main.getLebensmittelData());
}
}
Beim Kursiv geschriebenen kommt noch folgende Info The value of the field LebensmittelOverviewController.Main is not used das sollte eigentlich mit der Main verbunden sein.
Nun in der Konsole kommen jedoch ein ganzer Haufen von Fehler vor, zumindest hat es den Anschein.
Juli 05, 2021 8:55:11 AM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 16 by JavaFX runtime of version 11.0.2
Juli 05, 2021 8:55:12 AM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 16 by JavaFX runtime of version 11.0.2
javafx.fxml.LoadException:
/C:/Users/User/Desktop/Java/Workspace/Notvorrat_Beta/target/classes/rb/notvorrat/view/PersonUbersicht.fxml:46
at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2603)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
at rb.notvorrat.Main.showPersonUbersicht(Main.java:87)
at rb.notvorrat.Main.start(Main.java:57)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.IllegalArgumentException: Can not set javafx.scene.control.TableView field rb.notvorrat.view.LebensmittelOverviewController.LebensmittelTable to javafx.scene.layout.GridPane
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
at java.base/java.lang.reflect.Field.set(Field.java:793)
at javafx.fxml/javafx.fxml.FXMLLoader.injectFields(FXMLLoader.java:1174)
at javafx.fxml/javafx.fxml.FXMLLoader.access$1600(FXMLLoader.java:105)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processValue(FXMLLoader.java:865)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:759)
at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
... 13 more
Ich hoffe das ist einigermassen gut beschrieben.
Wäre toll wenn mir jemand helfen könnte.
Viele Grüsse
Schnörz