public class AccountOverviewController {
//declarations ...
@FXML
private Button undoButton;
@FXML
private Button redoButton;
@FXML
private void initialize() {
transactionsTable.getSelectionModel().setSelectionMode(
SelectionMode.MULTIPLE);
dateColumn.setCellValueFactory(dataValue -> dataValue.getValue()
.getDateProperty());
payeeColumn.setCellValueFactory(dataValue -> dataValue.getValue()
.getPayeeProperty());
categoryColumn.setCellValueFactory(dataValue -> dataValue.getValue()
.getCategoryProperty());
inflowColumn.setCellValueFactory(dataValue -> dataValue.getValue()
.getInflowProperty());
deleteButton.disableProperty().bind(Bindings.isEmpty(transactionsTable.getSelectionModel().getSelectedItems()));
editButton.disableProperty().bind(Bindings.size(transactionsTable.getSelectionModel().getSelectedItems()).isNotEqualTo(1));
undoButton.disableProperty().bind(Bindings.isEmpty(commandRegistry.getCommandStack()));
redoButton.disableProperty().bind(Bindings.isEmpty(commandRegistry.getUndoCommandStack()));
}
//handlers&setters ...
}
這兩行在最後引起錯誤。我想在命令堆棧爲空時禁用按鈕。我不知道爲什麼。例如,對於刪除/編輯按鈕禁用相同的按鈕可以正常工作。沒有這兩個完整的應用程序完美的罰款。JavaFX按鈕綁定異常
異常鏈:
javafx.fxml.LoadException:
/home/simon/eclipse/java-neon-workspace/to2/lab2/cw3/bin/pl/edu/agh/iisg/to/javafx/cw3/view/AccountOverviewPane.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2571)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at pl.edu.agh.iisg.to.javafx.cw3.presenter.AccountPresenter.initRootLayout(AccountPresenter.java:35)
at pl.edu.agh.iisg.to.javafx.cw3.Main.start(Main.java:20)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$106(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$119(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$117(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$118(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$450(GtkApplication.java:139)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2566)
... 13 more
Caused by: java.lang.NullPointerException
at pl.edu.agh.iisg.to.javafx.cw3.view.AccountOverviewController.initialize(AccountOverviewController.java:97)
... 23 more
棧兩者都宣稱像這樣CommandRegistry
類
private ObservableList<Command> commandStack = FXCollections.observableArrayList();
和getter自然迴歸自己。這裏可能會出現什麼問題?
能否請您添加對'AccountOverviewController'完整的代碼?你的蹤跡說'NullPointerException',你確定'commandRegistry'被初始化了嗎? – beatngu13
那麼哪條線是97線? –
在這個特殊的例子中,它是用'undoButoon.disablePrope ...'。但是他們每個人都會造成同樣的異常鏈。這裏是整個[項目](https://github.com/Sukiennik/JavaFX-Projects/tree/master/pl/edu/agh/iisg/to/javafx/cw3)和這裏[AccountOverviewController](http:// pastebin .com/cvGRY5z5) – Saris