JavaFX Combo与数据库数据一起进入TableView

时间:2016-06-03 12:17:58

标签: java javafx combobox

我想将ComboBox插入单元格(TableView)。 我从Mysql中获取数据。 您可以在图片中看到数据库架构:

database

如何将数据放入ComboBox并将ComboBox插入TableView
我已成功获得公司名称,但我未能创建并将名称放入ComboBox中的TableView

这是java代码:

public class Controller { 
    private ViewCompany viewCompany;
    @FXML
    private TableView<ViewCompany> table;
    @FXML
    private TableColumn<ViewCompany, String> companyColumn;
    @FXML
    private TableColumn<ViewCompany, ObservableList<BankAccount>> accountColumn;


    /**
     * This is called by the main application to give a reference back to itself.
     * 
     * @param mainApp
     */
    public void setMainApp() {
        viewCompany = ViewCompany.getInstance();
    //ViewCompany.obt() => Get data
        table.setItems(viewCompany.obt());
    }


    @FXML
    private void initialize() {

        companyColumn.setCellValueFactory(cellData -> cellData.getValue().getCompany().getName());

    //How do I initialize a ComboBox with multiple bank accounts?
    //How do I insert the ComboBox into a TableView?
    }
}

1 个答案:

答案 0 :(得分:0)

您还必须设置CellFactory :(示范)

ObservableList<BankAccount> bankValues = FXCollections.emptyList();
accountColumn.setCellFactory(ComboBoxTableCell.forTableColumn(
                  new DefaultStringConverter(), bankValues));

此外,我认为您需要从列中删除列表:

private TableColumn<ViewCompany, BankAccount> accountColumn;