1
好吧,我無法使用菜單項製作菜單。MenuItem上的NullPointer加載控制器時
我按照這個教程(http://docs.oracle.com/javafx/2/ui_controls/menu_controls.htm),但是當我運行它時,我得到一個空指針錯誤。我的代碼如下所示:
@Override
public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
ventas.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
FXMLLoader ventasloader;
ventasloader = new FXMLLoader(getClass().getResource("VentasGUI.fxml"));
Stage ventasstage = new Stage();
AnchorPane ventas = null;
try {
ventas = (AnchorPane) ventasloader.load();
} catch (IOException ex) {
Logger.getLogger(PuntoDeVentaController.class.getName()).log(Level.SEVERE, null, ex);
}
Scene ventasscene = new Scene(ventas);
ventasstage.setScene(ventasscene);
ventasstage.setTitle("Venta");
VentasGUIController controller = ventasloader.<VentasGUIController>getController();
controller.setUser(userID);
ventasstage.show();
}
...但即使當我離開只是骨架代碼,NetBeans將自動補充說:
@Override
public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
ventas.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
throw new UnsupportedOperationException("Not supported yet.");
}
...而不是讓「不支持尚未」我得到nullpointerexception。我查看了http://docs.oracle.com/javafx/2/api/javafx/scene/control/MenuItem.html上的文檔,但我沒有看到我的事件處理程序是空的,它看起來與教程中的完全相同。
任何人都知道我在做什麼錯了?
謝謝!
AARRGGgghhhh!我對控制器十分重視,忘記回去並將fxml文件中的「ventas」fx:id與實際的MenuItem關聯起來!謝謝! – John