2017-10-28 1 views
0

TableView 요소를 초기화하려고하고 있으므로 DB에서 데이터를 가져와야합니다. DB로부터 데이터를 취하여 ObservableList를 반환하는 메서드 (컨트롤러 클래스에 있음)는 SQLException 및 ClassNotFoundException을 발생시킵니다. 내가 초기화()에서 그 방법을 넣을 때 오류가 발생합니다 : 주위JavaFX 컨트롤러 클래스에서 initialize()에 예외를 throw하는 메서드 추가

overridden method does not throw 'java.sql.SQLException'

유일한 방법은이 일이 버튼을 만들고 그 방법에 연결하는 것이었다 있도록. 그러나 TableView는 자동으로 채워지지 않습니다. 전체 "버튼"접근없이이 단계가 열릴 때마다 해당 메소드를 호출 할 수있는 방법이 있습니까?

코드 : 당신은 JavaFX8 이후 Initializable를 구현할 필요가 없습니다

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

. FXMLLoader은 인수가없는 initialize()이라는 메소드를 찾고 무효화됩니다.

@FXML 
private void initialize() { } 
initialize()polulateRates()에 2 개 개의 제 1 라인을 이동

.

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

대단히 감사합니다. 실제로 작동합니다. :) –

관련 문제