如何在 swt.browser 中启用左键单击拖动或右键单击

How can I enable left click drag or right click in swt.browser

我正在尝试在 java 应用程序中嵌入网络浏览器。 不幸的是,它必须在应用程序中,而不是打开浏览器。

我找到了org.eclipse.swt.browser。我正在使用这个浏览器来显示 3D 模型,当我在浏览器中单击并拖动鼠标时,我应该能够旋转它。是否有启用此功能的选项或我可以采取的任何措施来解决此问题?

您可以使用此站点作为示例: https://a360.autodesk.com/viewer

当您打开网站时,有一些模型可以用左键单击旋转或用右键单击移动。

但是当我使用 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();
  }
}

我尝试删除 display.sleep() 并尝试使用 setTouchEnabled(true) 但我只能在 shell 和浏览器上使用它。显示总是设置为 false 问题可能出在这里吗?

使用 SWT.NONE 作为 Windows 上 Browser 的样式将默认使用 Internet Explorer。看来 IE 不支持用于显示动画的任何魔法。

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

这里有一些关于如何做到这一点的更多信息:

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