中的項目時出現異常,此時我要設置已聲明的表的項目我收到異常。我不知道我做錯了什麼。每次設置ObservableList JavaFX
錯誤代碼:
Okt 09, 2014 11:06:10 AM application.Main start
SCHWERWIEGEND: null
javafx.fxml.LoadException:
/D:/Users/muellerl/workspace/Hydaba/bin/application/table_ui.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at application.Main.start(Main.java:17)
at com.sun.javafx.application.LauncherImpl$8.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$7.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$6$1.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$6$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$300(Unknown Source)
at com.sun.glass.ui.win.WinApplication$4$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at controller.main_controller.initialize(main_controller.java:49)
... 20 more
所以,當我刪除einheitenTable.setItems(einheitendata);
我沒有收到錯誤。他找到源「table_ui.fxml」。所以我認爲這是TableView的一個問題。 這是我寫的其他代碼。希望你能幫助我解決這個問題。第49行中的錯誤屬於main_controller.java。
main.java:
package application;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
@Override
public void start(Stage Stage) {
try {
Parent root = FXMLLoader.load(getClass().getResource(
"/application/table_ui.fxml"));
Scene scene = new Scene(root);
Stage.setTitle("Hydaba-Client");
Stage.setScene(scene);
Stage.show();
} catch (Exception e) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
}
}
public static void main(String[] args) {
launch(args);
}
}
einheiten_table.java:
package table;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
public class einheiten_table {
private final SimpleIntegerProperty rBleinr;
private final SimpleStringProperty rEinheit;
private final SimpleStringProperty rLiteeinheit;
private final SimpleStringProperty rEinheitengruppe;
private final SimpleStringProperty rBasiseinheit;
private final SimpleIntegerProperty rUmrechnungsfaktor;
public einheiten_table (int sBleinr, String sEinheit, String sLiteeinheit, String sEinheitengruppe,String sBasiseinheit, int sUmrechnungsfaktor) {
this.rBleinr = new SimpleIntegerProperty(sBleinr);
System.out.println(sBleinr);
this.rEinheit = new SimpleStringProperty(sEinheit);
System.out.println(sEinheit);
this.rLiteeinheit = new SimpleStringProperty(sLiteeinheit);
System.out.println(sLiteeinheit);
this.rEinheitengruppe = new SimpleStringProperty(sEinheitengruppe);
System.out.println(sEinheitengruppe);
this.rBasiseinheit = new SimpleStringProperty(sBasiseinheit);
System.out.println(sBasiseinheit);
this.rUmrechnungsfaktor = new SimpleIntegerProperty(sUmrechnungsfaktor);
System.out.println(sUmrechnungsfaktor);
}
/** rBleinr **/
public Integer get_rBleinr() {
return rBleinr.get();
}
public void set_rBleinr(Integer set) {
rBleinr.set(set);
}
/** rEinheit **/
public String get_rEinheit() {
return rEinheit.get();
}
public void set_rEinheit(String set) {
rEinheit.set(set);
}
/** rLiteeinheit **/
public String get_rLiteeinheit() {
return rLiteeinheit.get();
}
public void set_rLiteeinheit(String set) {
rLiteeinheit.set(set);
}
/** rEinheitengruppe **/
public String get_rEinheitengruppe() {
return rEinheitengruppe.get();
}
public void set_rEinheitengruppe(String set) {
rEinheitengruppe.set(set);
}
/** rBasiseinheit **/
public String get_rBasiseinheit() {
return rBasiseinheit.get();
}
public void set_rBasiseinheit(String set) {
rBasiseinheit.set(set);
}
/** rUmrechnungsfaktor **/
public Integer get_rUmrechnungsfaktor() {
return rUmrechnungsfaktor.get();
}
public void set_rUmrechnungsfaktor(Integer set) {
rUmrechnungsfaktor.set(set);
}
}
main_controller.java:
package controller;
import java.net.URL;
import java.util.ResourceBundle;
import table.einheiten_table;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class main_controller implements Initializable {
@FXML
TableView<einheiten_table> einheitenTable;
@FXML
TableColumn<einheiten_table, Integer> Bleinr_col;
@FXML
TableColumn<einheiten_table, String> Einheit_col;
@FXML
TableColumn<einheiten_table, String> Liteeinheit_col;
@FXML
TableColumn<einheiten_table, String> Einheitengruppe_col;
@FXML
TableColumn<einheiten_table, String> Basiseinheit_col;
@FXML
TableColumn<einheiten_table, Integer> Umrechnungsfaktor_col;
final ObservableList<einheiten_table> einheitendata = FXCollections.observableArrayList(
new einheiten_table(9, "Stelle 1", "Stelle 2", "Stelle 3", "Stelle 4", 10)
);
@Override
public void initialize(URL location, ResourceBundle resources) {
Bleinr_col.setCellValueFactory(new PropertyValueFactory<einheiten_table, Integer>("rBleinr"));
Einheit_col.setCellValueFactory(new PropertyValueFactory<einheiten_table, String>("rEinheit"));
Liteeinheit_col.setCellValueFactory(new PropertyValueFactory<einheiten_table, String>("rLiteeinheit"));
Einheitengruppe_col.setCellValueFactory(new PropertyValueFactory<einheiten_table, String>("rEinheitengruppe"));
Basiseinheit_col.setCellValueFactory(new PropertyValueFactory<einheiten_table, String>("rBasiseinheit"));
Umrechnungsfaktor_col.setCellValueFactory(new PropertyValueFactory<einheiten_table, Integer>("rUmrechnungsfaktor"));
// System.out.println(einheitendata.size());
einheitenTable.setItems(einheitendata);
}
}
你在第49行有一個NullPointerException。那麼你能提供那部分代碼嗎?順便說一句。在java中,變量名以小寫字母開頭,後跟camelCase,類名以大寫字母開頭,後跟camelCase,你應該用英文而不是德文編程。 – haisi 2014-10-09 09:47:45
第49行在main_controller.Java中。謝謝我解決問題時會這樣做 – lukas22497 2014-10-09 10:26:58
我知道它在main_controller中,但是在你給我們的代碼中,第49行是空的! – haisi 2014-10-09 10:43:36