【问题标题】:GWT client side croppingGWT 客户端裁剪
【发布时间】:2011-11-14 13:13:13
【问题描述】:

我一直坚持将 gwt 与 JCrop 或 imgareaselect javascript 库集成 我有一张图片,每次客户端更改从其文件系统中选择的文件时(使用上传小部件),该 url 都会发生变化。 我希望用户在其图像中选择区域,这样我将能够获得尊重客户愿望的纵横比的图像。 问题是我无法成功在加载事件上调用 imgareaselect 或 jcrop,每次我有 null,如果我尝试 jquery ("imagepreview") jquery 在执行时是未知的,如果我尝试一些 $("#imagepreview")我得到一个 $ 未定义...

请帮忙... 问候。

public class ThisWidget extends LayoutContainer {


public void onRender(Element parent, int index) {
    super.onRender(parent, index);
    setLayout(new VBoxLayout());
    setWidth("100%");

    final FormPanel uploadPhotoPanel = new FormPanel();
    uploadPhotoPanel.setWidth("100%");
    uploadPhotoPanel.setHeight("150px");

    Label label = new Label("Ajouter une photo");
    add(label);

    uploadPhotoPanel.setAction(GWT.getModuleBaseURL()
        + "photoload/uploadpreview.ctz");
    uploadPhotoPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    uploadPhotoPanel.setMethod(FormPanel.METHOD_POST);


    final FileUploadField file = new FileUploadField();
    file.setName("FILE");
    uploadPhotoPanel.add(file);
    file.addHandler(new ChangeHandler() {
    @Override
    public void onChange(ChangeEvent event) {
        uploadPhotoPanel.submit();

    }
    }, ChangeEvent.getType());

    final Button btn = new Button("Ajouter",
        new SelectionListener<ButtonEvent>() {
        @Override
        public void componentSelected(ButtonEvent ce) {
            uploadPhotoPanel.submit();
        }
        });



    final Image previewimage;

        previewimage = new Image();
        DOM.setElementAttribute(previewimage.getElement(), "id",
            "previewimage");
        previewimage.setSize("200px", "200px");


    previewimage.addLoadHandler(new LoadHandler(){

        protected native void onPreviewLoad() /*-{
                document.getElementById("previewimage").imgAreaSelect({
                    aspectRatio : '1:1',
                    handles : true,
                    fadeSpeed : 200
                });

        }-*/;

        @Override
        public void onLoad(LoadEvent event) {
            onPreviewLoad();
        }});

    uploadPhotoPanel
        .addSubmitCompleteHandler(new SubmitCompleteHandler() {

        @Override
        public void onSubmitComplete(SubmitCompleteEvent event) {
            previewimage.setUrl(GWT.getModuleBaseURL()
                + "photoload/downloadpreview.ctz?tsp="
                + System.currentTimeMillis());
        }
        });

    add(uploadPhotoPanel);
    add(previewimage);
    add(btn);

}

【问题讨论】:

    标签: gwt crop jcrop


    【解决方案1】:

    使用$wnd.$("#imagepreview")$wnd.jquery("#imagepreview")

    (更新修复被遗忘的#

    【讨论】:

    • 谢谢,但是:' 引起:com.google.gwt.core.client.JavaScriptException: (TypeError): $wnd.jquery is not a function ' 和 ' 引起:com.google。 gwt.core.client.JavaScriptException: (TypeError): $wnd.$("previewimage").imgAreaSelect 不是函数''
    • 好的,因为我有 imgAreaSelect 不是一个函数,所以我将脚本头放在主 html 页面中的模块脚本之前,现在我没有任何错误,但什么也没发生 :-( 我我确定该方法被调用,因为我确实在该函数中放置了一个警报弹出窗口,但什么也没发生......
    • 啊,是的,我忘记了#。对此感到抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2011-10-14
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2011-03-30
    相关资源
    最近更新 更多