开发者

GWT : print button

I am trying to create a button that prints the current browser window.

This is my current code, that uses (or at least it tries to use) JSNI:

private Button print = new Button(constants.print(), new ClickHandler() {
    @Override
    public void onClick(final ClickEvent event) {
        /*-{
            if ($wnd.print) { 
                $wnd.print(); 
                return true; 
            } else { 
                return false; 
            } 
        }-*/
  开发者_如何学运维  }           
});

But when I click the button, nothing happens. It is my first GWT application, so I am not sure about how to implement it.


new Button(constants.print(),  new ClickHandler() {
        @Override
        public void onClick(final ClickEvent event) {
           print();
        }

        private native boolean print( ) /*-{
            if ($wnd.print) { 
                 $wnd.print(); 
                 return true; 
            } else { 
                 return false; 
            } 
        }-*/;  });

Should work! Always place JSNI within a native method.


Since GWT version 1.5, there's a built-in print function:

import com.google.gwt.user.client.Window

public class PrintHandler implements ClickHandler {
    public void onClick (ClickEvent event) {
            Window.print()
    }
}


Here is my 2 cents:

Create a re-usable class:

public class PrintHandler implements ClickHandler {

public void onClick (ClickEvent event) {
    print();
}

private native boolean print ()
/*-{
    if ($wnd.print) {
        $wnd.print();
        return true;
    } else {
        return false;
    }
}-*/;
}

And use it anywhere you like:

new Button( constants.print(), new PrintHandler() )
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜