代码之家  ›  专栏  ›  技术社区  ›  Guido

GWT:打印按钮

  •  1
  • Guido  · 技术社区  · 15 年前

    我正在尝试创建一个打印当前浏览器窗口的按钮。

    这是我当前的代码,它使用(或至少尝试使用)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; 
                } 
            }-*/
        }           
    });
    

    但是当我点击这个按钮时,什么都没有发生。这是我的第一个GWT应用程序,所以我不确定如何实现它。

    3 回复  |  直到 13 年前
        1
  •  6
  •   Ashwin Prabhu    15 年前
    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; 
                } 
            }-*/;  });
    

    应该工作!始终将JSNI放在本机方法中。

        2
  •  2
  •   Bob    13 年前

    由于GWT版本1.5,有一个内置的打印功能:

    import com.google.gwt.user.client.Window
    
    public class PrintHandler implements ClickHandler {
        public void onClick (ClickEvent event) {
                Window.print()
        }
    }
    
        3
  •  0
  •   Sileria    13 年前

    这是我的2美分:

    创建可重用类:

    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;
        }
    }-*/;
    }
    

    在任何你喜欢的地方使用它:

    new Button( constants.print(), new PrintHandler() )
    
    推荐文章