0

我遇到了可编辑表格单元格的问题。我在我的项目中使用 TableView 就像Oracle 教程一样。

根据它,我使用 setCellFactory 方法在 TextFieldTableCell 类的帮助下将表格单元格重新实现为文本字段。但是,我发现要编辑单元格的步骤有点复杂:

  1. 使用方向键选择表格单元格。
  2. 按“Enter”将单元格转换为文本文件,以便对其进行编辑。
  3. 单击文本字段允许编辑内容

问题是第 3 步,您必须使用鼠标单击才能在此表格单元格中输入数据。

那么,是否有避免步骤 3 的解决方案?即文本字段允许您只需按“Enter”即可输入数据(步骤 2)。

顺便说一句,英语不是我的母语。希望我已经说清楚了。

4

2 回答 2

0

节点可以手动聚焦。这TextFieldTableCellTableCell一个节点(图形)TextField,当单元格处于编辑模式时将被渲染。您需要手动关注此文本字段,但通过使用TextFieldTableCell您无法访问该文本字段。但是,如果您更喜欢您所指的教程中描述的替代方式,那么您就有机会集中精力。该教程中唯一更改的方法是:

@Override
public void startEdit() {
    super.startEdit();
    createTextField();
    setText(null);
    setGraphic(textField);
    textField.selectAll();
    // Set the focus
    Platform.runLater(new Runnable() {
        @Override
        public void run() {
            textField.requestFocus();
        }
    });
}
于 2012-08-22T08:03:01.573 回答
0

要在没有鼠标单击事件的情况下在 TableView 中开始编辑,请调用 TreeView.edit(rowIndex, tableColumn);

例如:

//create tableview object
TableView<YourModel> tableView = new TableView<>();
//create column
TableColumn<YourModel, String> column = new TableColumn<>("Property Name");
//add column to tableview
tableView.getColumns().add(column);
//... your cell factory and the rest
//add an item
tableView.getItems().add(new YourModel());
//if you want to edit the selected item, get its index
int selectedIndex = tableView.getSelectionModel().getSelectedIndex();
//fire edit
tableView.edit(selectedIndex, column);
于 2015-02-18T20:44:53.283 回答