Colors setEditStart上的JavaFX表格集合表格单元格背景

Colors setEditStart上的JavaFX表格集合表格单元格背景,colors,javafx-2,cell,edit,Colors,Javafx 2,Cell,Edit,我在JavaFX中有一个带有可编辑单元格(字符串)的表。我想编辑表格本身中单元格的值。现在,FX中的编辑行为有点不寻常。必须按enter键才能提交编辑的值。仅更改行或单元格是不够的。所以我的想法是在我开始编辑单元格背景时将其涂成黄色,并在用户按enter键时删除黄色,以提醒用户按enter键。但是我在开始编辑方法中获取单元格时遇到了一些问题。我怎样才能改变颜色 欢迎任何提示 这是我的密码 TableColumn nameCol = new TableColumn("Name"); nameC

我在JavaFX中有一个带有可编辑单元格(字符串)的表。我想编辑表格本身中单元格的值。现在,FX中的编辑行为有点不寻常。必须按enter键才能提交编辑的值。仅更改行或单元格是不够的。所以我的想法是在我开始编辑单元格背景时将其涂成黄色,并在用户按enter键时删除黄色,以提醒用户按enter键。但是我在开始编辑方法中获取单元格时遇到了一些问题。我怎样才能改变颜色

欢迎任何提示

这是我的密码

TableColumn nameCol = new TableColumn("Name");  
nameCol.setCellFactory(TextFieldTableCell.forTableColumn());     
nameCol.setOnEditStart(new EventHandler<CellEditEvent<Zone, String>>() {
   @Override
   public void handle(CellEditEvent<Zone, String> cell) 
   {
     if(cell.getRowValue() != null)
       //how to get the cell and then ->.setStyle("-fx-background-color:yellow");
   }});
TableColumn Name col=新的TableColumn(“名称”);
nameCol.setCellFactory(TextFieldTableCell.forTableColumn());
nameCol.setOnEditStart(新的EventHandler(){
@凌驾
公共无效句柄(CellEditEvent单元格)
{
if(cell.getRowValue()!=null)
//如何获取单元格,然后->设置样式(“-fx背景色:黄色”);
}});

不要依赖于
setOnEditStart
API,而是使用表的
RowFactory

/**
 * 
 * @author ggrec
 *
 */
private class FXTableRowFactory implements Callback<TableView<FXTableRow>, TableRow<FXTableRow>>
{
    @Override
    public TableRow<FXTableRow> call(final TableView<FXTableRow> arg0)
    {
        return new TableRow<FXTableRow>() {

            @Override protected void updateItem(final FXTableRow line, final boolean empty)
            {
                super.updateItem(line, empty);

                if (line == null)
                    return;

                if (isEditing())
                {
                    this.setStyle(line.getStyleWhenEditing());
                }
            }
        };
    }
}
/**
* 
*@author ggrec
*
*/
私有类FXTableRowFactory实现回调
{
@凌驾
公共TableRow调用(最终TableView arg0)
{
返回新的TableRow(){
@覆盖受保护的void updateItem(最终FXTableRow行,最终布尔值为空)
{
super.updateItem(行,空);
如果(行==null)
返回;
if(isEditing())
{
this.setStyle(line.getStyleWheenditing());
}
}
};
}
}

嗨,对不起,我说得不准确。我想通过单击单元格来编辑表中单元格本身的值。为此,我将setOnEditStart API与TextFieldTableCell.forTableColumn()一起使用。如果我使用您的方法,我如何将此行为添加到其中?