Ошибка IOEXCEPTION снова и снова в FXML. Попытка поместить файл FXML в элемент списка в ListView - PullRequest
0 голосов
/ 09 сентября 2018
public class PopupController  {
    public ListView<String> listView;
    public Button addWalletButton;
    public PieChart piechart;
    public Label size;
    private WalletModel walletModel = Factory.inject(WalletModel.class);

    @FXML
    public void initialize() throws IOException {


        listView.setCellFactory(param -> new EditableCell());
        addWalletButton.setOnMouseClicked(event -> {
            walletModel.CreateWallet();
            listView.getFixedCellSize();
            listView.getItems().add("Wallet " + walletModel.WalletSize());
            size.setText("Total Wallets:  " + walletModel.WalletSize());
        });
        size.setText("Wallet Size " + walletModel.WalletSize());
        listView.getItems().add("Wallet 1");
    }

    private class EditableCell extends ListCell<String>{

        private final TextField textField;

        EditableCell() throws IOException {
            textField = new TextField();
            setGraphic(FXMLLoader.load(getClass().getResource("/selectbutton.fxml")));
        }

        @Override
        protected void updateItem(String item, boolean empty) {
            super.updateItem(item, empty);
            if(empty){
                textField.setVisible(false);
            }
            else{
                textField.setVisible(true);
                textField.setText(item);
            }
        }
    }



}

Это показывает ошибку в первом операторе в методе initialize ().

Я пытаюсь поместить файл fxml в элемент списка с помощью кнопки («добавить кошелек»).Я приложил мой fxml код ниже.

Я не получаю трассировку стека, потому что она показывает ошибку компиляции

<AnchorPane prefHeight="27.0" prefWidth="69.0" xmlns="http://javafx.com/javafx/8.0.121"
            xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.gazman.coco.desktop.controllers.PopupController">
    <Button fx:id="select" layoutX="6.0" layoutY="2.0" mnemonicParsing="false" text="Button"/>
</AnchorPane>

1 Ответ

0 голосов
/ 09 сентября 2018

IOException является проверенным исключением, что означает, что оно должно быть обработано явным образом любым из двух способов:

  • зафиксировано в предложении catch оператора try-catch
  • распространяется методом, где исключение может произойти. Это делается путем добавления throws IOException в конец подписи вашего метода.

Это для того, чтобы заставить разработчиков обрабатывать типичные сбои ввода-вывода и других операций с разумным ожиданием внешнего сбоя.

...