在JavaFX控制器类中抛出异常初始化()的方法
问题描述:
我想初始化一个TableView元素,并且为此我需要从数据库中获取数据。方法(位于控制器类中)从数据库获取数据并返回ObservableList,引发SQLException和ClassNotFoundException。当我把这个方法在初始化(),我得到一个错误:在JavaFX控制器类中抛出异常初始化()的方法
overridden method does not throw 'java.sql.SQLException'
的只有大约方法,使其工作是做一个按钮,并将其链接到该方法。但是,这并不会自动填充TableView。 有没有办法在该阶段打开时调用该方法,而没有整个“按钮”方法?
代码:
public void initialize(URL location, ResourceBundle resources) {
// Link table cells to Rates object
currencyCol.setCellValueFactory(cellData -> cellData.getValue().currencyCodeProperty());
buyCol.setCellValueFactory(cellData -> cellData.getValue().buyRateProperty().asObject());
sellCol.setCellValueFactory(cellData -> cellData.getValue().sellRateProperty().asObject());
}
@FXML
public void populateRates() throws SQLException, ClassNotFoundException {
ObservableList<Rates> rates = RatesDAO.showRates();
currencyTable.setItems(rates);
System.out.println(rates);
}
答
你并不需要实现Initializable
因为JavaFX8。 FXMLLoader
将寻找一种名为initialize()
的方法,无参数,并且无效。
@FXML
private void initialize() { }
移动在polulateRates()
两个第一线成initialize()
。
ObservableList<Rates> rates = RatesDAO.showRates();
currencyTable.setItems(rates):
非常感谢你,这的确的确工作:) –