ComboBoxTableCellComboBox允许在编辑模式下添加一个TableCell。如果comboBox.show()被调用(例如显示弹出窗口),comboBox则按预期按下箭头键和向上箭头键时会做出反应,并在按下回车键后立即结束编辑模式。我只想使用键盘控制编辑。我找不到使用键盘调用“comboBox.show()”的方法。
到现在为止,我尝试使用setOnKeyPressed向ComboBoxTableCell(在通过工厂方法创建期间)或ComboBox(通过使用ComboBoxTableCell.getGraphic())添加回调。调用回调ComboBox.show()以打开弹出窗口,但未调用它们(通过System.out回调中的打印验证)。
actColumn.setCellFactory(
new Callback<TableColumn<S,Object>, TableCell<S,Object>>() {
private ObservableList<Object> list=optionList;
@SuppressWarnings("unchecked")
@Override
public TableCell<S, Object> call(TableColumn<S, Object> param) {
final ComboBoxTableCell<S,Object> cell=
new ComboBoxTableCell<S,Object>(list);
cell.setConverter((StringConverter<Object>) converter);
cell.setOnKeyPressed(event -> {
cell.startEdit();
Node node=cell.getGraphic();
System.out.println(node);
if(node instanceof ComboBox) {
System.out.println("Hit Key.");
final ComboBox<?> box=(ComboBox<?>) node;
box.show();
}
});
除了这段代码很奇怪之外,当在单元格的编辑模式下按下一个键时,处理程序不会被调用(或者至少我没有输出)。
我希望能够选择一个ComboBoxTableCell,按回车键(可能还有一个额外的键),然后内部的弹出窗口ComboBox应该显示出来,而无需鼠标进行任何交互。
MYYA
相关分类