Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过程序代码将EditTextBox设置为编辑模式?_Java_Gwt - Fatal编程技术网

Java 如何通过程序代码将EditTextBox设置为编辑模式?

Java 如何通过程序代码将EditTextBox设置为编辑模式?,java,gwt,Java,Gwt,我正在使用GWT和一个EditTextCell,点击它就会进入编辑模式。 有人知道用程序代码强制框进入编辑模式的方法吗 我是否必须以某种方式在该框上触发一个ClickEvent?或者如何做到这一点?您可以将以下方法添加到CellTable或DataGrid中: public void focus(final int row, final int column) { Scheduler.get().scheduleDeferred(new ScheduledCommand() {

我正在使用
GWT
和一个
EditTextCell
,点击它就会进入编辑模式。 有人知道用程序代码强制框进入编辑模式的方法吗


我是否必须以某种方式在该框上触发一个
ClickEvent
?或者如何做到这一点?

您可以将以下方法添加到CellTable或DataGrid中:

public void focus(final int row, final int column) {
    Scheduler.get().scheduleDeferred(new ScheduledCommand() {

        @Override
        public void execute() {
            getRowElement(row).getCells().getItem(column).getFirstChildElement().getFirstChildElement().focus();
        }
    });
}
然后,当需要在给定单元格上设置焦点时,可以简单地调用
.focus(行、列)


或者您可以直接调用
.getRowElement()…
,但我建议将其包装在ScheduledCommand中,这样它就不会在单元格准备接受焦点之前过早启动。

事实证明,我可以在单元格上启动本机单击事件,如下所示:

NativeEvent nativeevent = Document.get().createClickEvent(1, 0, 0, 0, 0, false, false, false, false);
cell.getElement().dispatchEvent(nativeevent);

您还可以编写
render
事件,或添加
clickHandler
以设置
contentEditable=true
false

private class CustomEditCell extends EditTextCell {

        public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {

            sb.appendHtmlConstant("<div contentEditable='true' unselectable='true' >"+value+"</div>");  

         }
    }
私有类CustomEditCell扩展了EditTextCell{
public void render(com.google.gwt.cell.client.cell.Context上下文、字符串值、安全HTMLBuilder sb){
sb.附加HtmlConstant(“+value+”);
}
}

edittextbox??或者edittextcell??对不起,你是对的,我是说edittextcell。我只是在使用
edittextcell
,既不是
CellTable
也不是
DataGrid
!只需
EditTextCell
CellWidget
中。因此,可能没有要调用的
focus()
方法……在每个可以接受焦点的元素(包括所有输入元素)上都有一个
.focus()
方法。