簡體   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