[英]Is there a way to use d3.js in swt composite
我正在開發一個eclipse插件,在其中需要某種數據可視化。 我發現d3的可視化非常有用。 由於d3是一個JavaScript庫,因此可以在瀏覽器中顯示圖表。 但我希望圖表顯示在swt復合上。
有沒有辦法做到這一點...
您可以使用SWT瀏覽器小部件。 默認情況下,它鏈接到Windows上的IE DLL和Linux上的XULrunner DLL。
您可以使用javafx-d3與JavaFx WebView(應該可以集成到SWT中)中的d3.js進行交互。
首先,按照github頁面上的說明安裝javafx-d3:
- 獲取源代碼
- 您可以將主文件夾用作包含兩個項目的Eclipse工作區:
- 導入兩個Eclipse Maven項目javafx-d3和javafx-d3-demo
- 建立Maven項目
- 運行演示套件
com.github.javafxd3.d3.JavaFxD3DemoSuite
- 如果您沒有啟動並運行javafx-d3,請創建一個問題單。
(在Eclipse中工作,我不得不解決途中缺少“ src / test / java”文件夾的問題。)
接下來,我按照本教程將browser
從JavaFxSingleDemo
集成到SWT shell中。 (我必須手動導入javafx.embed.swt包-參見此線程 )
public class SwtIntegrationDemo {
private static Scene scene;
private static JavaFxD3Browser browser;
public static void main(final String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("JavaFX / SWT Integration");
shell.setLayout(new FillLayout());
final FXCanvas canvas = new FXCanvas(shell, SWT.NONE);
//define d3 content as post loading hook
final Runnable postLoadingHook = () -> {
System.out.println("Initial loading of browser is finished");
//do some d3 stuff
createD3Example(); };
//create browser
browser = new JavaFxD3Browser(postLoadingHook, true);
//create the scene
scene = new Scene(browser, 750, 500, Color.web("#666970"));
canvas.setScene(scene);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
private static void createD3Example() {
// code from JavaFxD3SingleDemo.java
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.