【发布时间】:2017-09-07 21:52:35
【问题描述】:
用例:使用 FxCanvas 在 Eclipse 编辑器的 createPartControl() 中显示 JavaFx 条形图。
问题:首次启动 RCP 应用程序时,swtFxBarChart() 成功地在 SWT Composite 上绘制图形。但是,当我们关闭编辑器窗口并重新打开 fxCanvas.setScene(scene); 抛出 java.lang.IllegalStateException:不在 FX 应用程序线程上; currentThread = JavaFX 应用程序线程
代码:
private void swtFxBarChart(Composite composite) {
final FXCanvas fxCanvas = new FXCanvas(composite, SWT.NONE);
fxCanvas.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).create());
fxCanvas.setLayout(GridLayoutFactory.fillDefaults().create());
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final BarChart<String, Number> bc = new BarChart<String, Number>(xAxis, yAxis);
bc.setTitle("Example");
xAxis.setLabel("Status");
yAxis.setLabel("Count");
bc.setLegendVisible(false);
XYChart.Series series1 = new XYChart.Series();
final XYChart.Data completedSeries = new XYChart.Data("Completed", completedList().size());
series1.getData().add(completedSeries);
final XYChart.Data failedSeries = new XYChart.Data("Failed", failedList().size());
series1.getData().add(failedSeries);
Scene scene = new Scene(bc, 400, 400);
bc.getData().addAll(series1);
fxCanvas.setScene(scene);
}
环境:jdk1.8.0_102
【问题讨论】:
标签: eclipse javafx eclipse-plugin swt eclipse-rcp