在GWT Textbox中捕获粘贴的文本

时间:2015-07-21 12:03:42

标签: java gwt

我想在GWT中处理粘贴事件和捕获粘贴文本 TextBox。我检查过TextBox中的粘贴事件没有标准处理程序。

1 个答案:

答案 0 :(得分:3)

我发现可以添加一些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)通过JSNI呼叫event.clipboardData.getData('text/plain');