java - FXML 中一次又一次出现 IOEXCEPTION 错误。尝试将 FXML 文件放在 ListView 中的列表元素上

标签 java exception fxml

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>

最佳答案

IOException 是一个检查异常,这意味着它必须通过以下两种方式之一显式处理:

  • 陷入 try-catch 语句的 catch 子句
  • 通过可能发生异常的方法传播。这是通过将 throws IOException 添加到方法签名的末尾来完成的。

这是为了迫使开发人员以合理的外部故障预期来处理 IO 和其他操作的典型故障。

关于java - FXML 中一次又一次出现 IOEXCEPTION 错误。尝试将 FXML 文件放在 ListView 中的列表元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52248365/

相关文章:

java - 使用 Java 连接到 C++ 程序

php - Laravel 处理异常

user-interface - 如何在 FXML 中的 Tab 控件中添加图标?

c++ - 如果我跳出带有 "goto"的捕获 block ,我是否保证异常对象将被释放?

JavaFX Controller 加载

JavaFX FXML - 带有图标和文本的按钮

java - 碧 Jade 报告 : Creating a Watermark with the Background Band

java - 在 swt 的特定时间段后自动关闭 shell

java - Stage.setOnCloseRequest() 和 Runtime.addShutdownHook() 有什么区别?

Android NDK/异常?