2015-04-01 23 views
2

组合框是我的有趣的情况,显示选定行的从ComboBoxTableView在JavaFX

我试图从泰伯维具有含ComboBoxTableCell的cellfactory列访问组合框。这将通过一个事件处理程序来访问,这样当用户在行上点击“输入”时,组合框将显示其项目。

的ComboboxTableCell创建为

tableViewCol.setCellFactory(ComboBoxTableCell.forTableColumn(anObservableArrayList)); 

,我可以访问的tableview作为被引用:

@FXML 
private TableView<Obj> tableView; 
@FXML 
private TableColumn<Obj, String> tableViewCol; 

最远的我能得到以下是这些路径,其.getClass的tablecol( )导致:“class javafx.scene.control.TableColumn $ 1”:

tableView.getSelectionModel().getSelectedCells().get(0).getTableColumn().getCellFactory().call() 

tableView.getSelectionModel().getSelectedCells().get(0).getTableColumn().cellFactoryProperty() 

我再一次尝试访问列表中具有ComboBoxTableCell的tableview中的选定行,并试图在事件点击时输入所选行的comboBox。我只是无法确定如何访问它,这让我感到非常紧张。

对于视觉代表请参阅第一个链接,然后第二个。 http://i.stack.imgur.com/teV4S.png http://i.stack.imgur.com/7kjPs.png (Bleh,新手不能发布图片)。

任何帮助建议,替代方案,反馈是有帮助的。 谢谢!

+0

您可以根据单元格项目构建自己的自定义组合框,然后当调用“enter”时,在startEdit()中打开组合框。看[这种类似的方法](http://stackoverflow.com/questions/29387386/populate-combo-box-list-dynamically-for-each-row-in-javafx-table-view/29390823#29390823) – 2015-04-02 06:39:18

回答

0

您可以通过cell.getGraphic()访问Comobobx。

但是做这样的事情:

tableView.edit(tableView.getSelectionModel().getSelectedIndex(), tableViewCol); 

,这每次的选择改变。

如果你想要的话,你可以编写自己的Comboboxcell,当它的行被选中时自动显示它的Graphic。