2016-04-25 155 views
2

我想在Java应用程序中嵌入Web浏览器。 不幸的是,它必须在应用程序中,而不是打开浏览器。如何启用左键单击拖动或右键单击swt.browser

我发现org.eclipse.swt.browser。我使用这个浏览器来显示3D模型,当我点击浏览器并拖动我的鼠标时,我应该可以旋转它。有没有一个选项来启用这个或我可以做的任何事情来解决这个问题?

您可以使用本网站中的示例: https://a360.autodesk.com/viewer

当您打开该网站有可以用左键点击旋转或右键点击移动模式。 Example site

但是,当我使用swt.browser我不能没有旋转,或拖动模式打开同一个页面。

import org.eclipse.swt.SWT; 
import org.eclipse.swt.browser.Browser; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 


public class BrowserClass { 
    public static void main(String[] args) { 
    Display display = new Display(); 
    final Shell shell = new Shell(display); 
    shell.setText("Browser Example"); 
    shell.setSize(1300, 800); 


    final Browser browser = new Browser(shell, SWT.NONE); 
    browser.setBounds(5, 5, 1275, 750); 

    shell.open(); 
    browser.setUrl("https://a360.autodesk.com/viewer"); 
    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) 
     display.sleep(); 
    } 
    display.dispose(); 
    } 
} 

enter image description here

我试图消除display.sleep()和我一直在使用setTouchEnabled(真)尝试,但我只能用它的外壳和浏览器。显示屏始终将其设置为false,问题是否可以在这里?

回答

1

使用SWT.NONE作为Browser的Windows上的风格将使用Internet Explorer作为默认值。它看起来像IE不支持任何魔术来显示动画。

尝试使用SWT.MOZILLA强制SWT使用XULRunner的作为后端。

下面是关于如何做到这一点的一些详细信息:

How do I explicitly use Mozilla as the Browser's underlying renderer?

+0

我通常在我的IE工程自定义模型查看器。这是否意味着它应该在swt.browser中工作得很好,即使它有SWT.NONE – InsaneCricket

+0

您在IE中指出的那个页面是否适合您?它不适合我。 [这部分SWT常见问题](https://www.eclipse.org/swt/faq.php#browsernativeie)列出了IE的一些问题。以SWT <3.7为例,IE7是您在“浏览器”窗口小部件中获得的最新IE版本。你正在使用哪个版本的SWT? – Baz

+0

该网站在我的IE浏览器不起作用,但我有一个浏览器,我已经开发了在IE浏览器中工作,很好,我不能真正分享观众不幸。 我试过使用jxBrowser,它工作正常,但它不是免费的,所以我正在探索不同的选项swt.browser是其中之一。 – InsaneCricket