2013-04-04 112 views
1

我使用JWebBrowser作爲Swing應用程序中的組件。當我單擊JWebBrowser內部的鏈接時,它會打開一個新窗口(window.open()javascript),但由Swing組件包裝。我希望它在IE瀏覽器中打開!有沒有JWebBrowser的任何屬性允許這個?在新的IE窗口中打開JWebBrowser中的鏈接?

回答

1

我有類似的問題,大多數代碼是從最初的例子採取: http://djproject.cvs.sourceforge.net/viewvc/djproject/DJNativeSwing-SWTDemo/src/chrriis/dj/nativeswing/swtimpl/demo/examples/webbrowser/NavigationControl.java?pathrev=R-1_0_1

browser.addWebBrowserListener(new WebBrowserAdapter() { 

    public void windowWillOpen(WebBrowserWindowWillOpenEvent e) { 
     // get the new swing window 
     final JWebBrowser newBrowser = e.getNewWebBrowser(); 
     newBrowser.addWebBrowserListener(new WebBrowserAdapter() { 

      @Override 
      public void locationChanging(WebBrowserNavigationEvent newEvent) { 
       // launch default OS browser 
       if (Desktop.isDesktopSupported()) { 
        Desktop desktop = Desktop.getDesktop(); 

        if (desktop.isSupported(Desktop.Action.BROWSE)) { 
         try { 
          desktop.browse(new URI(newEvent.getNewResourceLocation())); 
         } catch (Exception ex) {} 
        } 
       } 
       newEvent.consume(); 

       // immediately close the new swing window 
       SwingUtilities.invokeLater(new Runnable() { 

        public void run() { 
         newBrowser.getWebBrowserWindow().dispose(); 
        } 
       }); 
      } 
     }); 
    } 
}); 
相關問題