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()
方法。