Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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 在GWT文本框中捕获粘贴的文本_Java_Gwt - Fatal编程技术网

Java 在GWT文本框中捕获粘贴的文本

Java 在GWT文本框中捕获粘贴的文本,java,gwt,Java,Gwt,我想处理粘贴事件并捕获GWT中文本框的粘贴文本。正如我所检查的,TextBox中没有用于粘贴事件的标准处理程序 我发现只需添加一点javascript本机代码就可以做到这一点: public class PasteAwareTextBox extends TextBox { public PasteAwareTextBox() { super(); sinkEvents(Event.ONPASTE); } @Override p

我想处理粘贴事件并捕获GWT中
文本框
的粘贴文本。正如我所检查的,
TextBox
中没有用于粘贴事件的标准处理程序

我发现只需添加一点javascript本机代码就可以做到这一点:

public class PasteAwareTextBox extends TextBox {

    public PasteAwareTextBox() {
        super();
        sinkEvents(Event.ONPASTE);
    }

    @Override
    public void onBrowserEvent(Event event) {
        super.onBrowserEvent(event);
        switch (event.getTypeInt()) {
        case Event.ONPASTE:
            onPasted(getClipboardData(event));
            break;
        }

    }

    private void onPasted(String clipboardData) {
        System.out.println("Pasted:" + clipboardData);
    }

    private static native String getClipboardData(Event event) /*-{
        return event.clipboardData.getData('text/plain'); 
    }-*/;

}
1) 订阅粘贴事件

2) 调用
event.clipboardData.getData('text/plain')通过JSNI