2017-10-28 106 views
0

我想初始化一个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); 
} 

回答

0

你并不需要实现Initializable因为JavaFX8。 FXMLLoader将寻找一种名为initialize()的方法,无参数,并且无效。

@FXML 
private void initialize() { } 

移动在polulateRates()两个第一线成initialize()

ObservableList<Rates> rates = RatesDAO.showRates(); 
currencyTable.setItems(rates): 
+0

非常感谢你,这的确的确工作:) –

相关问题