繁体   English   中英

如何处理在GXT2中更改网格单元中的值的完成

[英]How to handle the finishing of changing the value in the grid cell in GXT2

我有一个使用GXT的应用程序。 在此应用程序中,有一个网格,我需要在其中编辑单元格中的值。 我以这种方式创建单元:

column = new ColumnConfig();
fieldEditor = new CellEditor(new TextField<String>());
column.setEditor(fieldEditor);
column.setId("value");
column.setHeader("Value");
column.setWidth(650);
configs.add(column);

如您所见,我使用TextField作为编辑器。 因此,更改值后,我可以按Enter键或在窗口的任何其他位置单击。 如何处理。 我试图处理ButtonPress事件和ButtonPress事件,但这会丢弃异常或不执行任何操作。

UPD:现在,我正在尝试通过以下方式实现此目的:

valueEditor = new TextField<String>();
KeyListener keyListener = new KeyListener(){
    @Override
    public void componentKeyUp(ComponentEvent event){
        if (event.getKeyCode() == KeyCodes.KEY_ENTER){
        if (valueEditor.getValue() != null && !("").equals(valueEditor.getValue())){
           Window.alert("Enter Button Pressed");
           PropertyItem item;
           item = new PropertyItem(grid.getStore().getAt(rowNumber).getName(),                 
                grid.getStore().getAt(rowNumber).getType(), valueEditor.getValue(),    
                grid.getStore().getAt(rowNumber).isAccepted());
           store.update(item);
           store.commitChanges();
           saveProperties(store, customerId, toRemove);
                    }
                }
            }
        };
        valueEditor.addKeyListener(keyListener);

问题是什么:它不能在编辑结束时处理Enter键,而只能在停用编辑后处理它。

如果要处理TextField上的enter事件 ,则可以使用以下代码

TextField<String> field = new TextField<String>();
KeyListener keyListener = new KeyListener(){
    @Override
    public void componentKeyUp(ComponentEvent event) {
        if(event.getKeyCode() == KeyCodes.KEY_ENTER){
            //do stuff
        }
    }
};
field.addKeyListener(keyListener);

column = new ColumnConfig();
fieldEditor = new CellEditor(field);
column.setEditor(fieldEditor);
column.setId("value");
column.setHeader("Value");
column.setWidth(650);
configs.add(column);

如果这对您没有帮助,则可以使用焦点丢失事件。 希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM