2016-06-03 3 views
0

Я хочу вставить ComboBox в ячейку (TableView). Я взял данные из Mysql. Вы можете увидеть схему базы данных на картинке:JavaFX Combo в TableView с данными базы данных

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? 
    } 
} 
+0

Вы хотите повторить все банковские счета с помощью combo bo xes, сообщающий, какая компания X имеет от них? – niceman

+0

[1]: http://i.stack.imgur.com/3QmRr.jpg – Atha

+0

Я не рекомендую это, комбинированные поля являются элементами ввода, т.е. элементами, которые вводят от пользователя, то, что вы хотите, должно показать информацию – niceman

ответ

0

Вы должны настроить CellFactory, тоже: (образцовый)

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

Кроме того, я думаю, вы должны удалить список из колонки :

private TableColumn<ViewCompany, BankAccount> accountColumn;