JavaFX - 尝试从另一个类

时间:2017-01-04 18:20:46

标签: java xml javafx fxml

所以我有这个用JavaFX制作的购物篮应用程序。我想要做的是当我清理购物篮从新鲜开始我可以清除我的表视图,因为我可以信任将表数据设置为空,但我正在努力清除我的文本字段,因为我不知道如何访问它们。

这是我的BasketOverviewController中的TextFields

    @FXML
    public TextField noItemsField;

    @FXML
    public TextField totalField;

以下是更新文本字段的两种方法。

public void getTotalItems() {
        int total = 0;
        ArrayList<Items> itemList = new ArrayList<>(MainApp.itemData);
        for (Items item : itemList) {
                total += item.getQuantity();
        }
        noItemsField.setText(total + "");

}

    public void getTotalPrice() {
            double total = 0;
            ArrayList<Items> itemList = new ArrayList<>(MainApp.itemData);
            for (Items item : itemList) {
                    total += item.getTotal();
            }
            totalField.setText("£" + df.format(total));
            // returns the total of each item through for loop
    }

所以说如果我点击新的或在我的购物篮中打开一个新的XML文档,这两个文本字段不会更新,除非我调用这两个方法时再做一个动作,然后调用BasketOverviewController。我想知道在RootLayoutController中是否有任何东西可以调用它们,或者当它设置为0时将它们设置为0.这是我的RootLayoutController中用于创建新文件或打开XML文档的代码。

RootLayoutController

@FXML
private void handleNew() {
    mainApp.getItemData().clear();
    mainApp.setItemFilePath(null);
}

@FXML
private void handleOpen() {
    FileChooser fileChooser = new FileChooser();

    // Set extension filter
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter(
            "XML files (*.xml)", "*.xml");
    fileChooser.getExtensionFilters().add(extFilter);

    // Show save file dialog
    File file = fileChooser.showOpenDialog(mainApp.getPrimaryStage());

    if (file != null) {
        mainApp.loadItemDataFromFile(file);
    }
}

所以基本上我有一个BasketOverviewController,其中包含我需要在制作新的XML文档时更改的textFields,因为这是购物篮创建的文件类型,当我打开XML文档时,我需要Total text字段来更新和要更新的No.Items。现在我尝试创建一个对我的BasketOverView控制器的引用并尝试编辑文本字段,但我总是得到一个NullPointerException。

Here you can see the shopping basket that I have made

0 个答案:

没有答案