我建立一個RCP應用程序,基於Eclipse 3.5。由於兩篇文章(1,2),我已經在oracle.com發現,我已經能夠實現工作RCP認爲,這顯示一個餅圖。的JavaFX - SWT互操作:申請凍結
不幸的是,如果我關閉視圖並重新打開它,那麼應用程序凍結,永不回來。
我在Windows 7 X64使用JavaFX 2.2.7,JDK 1.6.0.31下。
這是代碼。該視圖是org.eclipse.ui.part.ViewPart的標準子類。
Composite panel = new Composite(parent, SWT.NONE);
RowLayout layout = new RowLayout();
panel.setLayout(layout);
FXCanvas fxCanvas = new FXCanvas(panel, SWT.NONE) {
@Override
public Point computeSize(int wHint, int hHint, boolean changed) {
getScene().getWindow().sizeToScene();
int width = (int) getScene().getWidth();
int height = (int) getScene().getHeight();
return new Point(width, height);
}
};
Scene scene = new Scene(new Group());
RGB rgb = panel.getBackground().getRGB();
Color color = Color.rgb(rgb.red, rgb.green, rgb.blue);
scene.setFill(color);
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList();
pieChartData.add(new PieChart.Data("label1", 20));
pieChartData.add(new PieChart.Data("label2", 20));
pieChartData.add(new PieChart.Data("label3", 20));
pieChartData.add(new PieChart.Data("label4", 20));
pieChartData.add(new PieChart.Data("label5", 20));
Chart chart = new PieChart(pieChartData);
chart.setLegendSide(Side.RIGHT);
((Group) scene.getRoot()).getChildren().add(chart);
fxCanvas.setScene(scene);
誰能幫助?
有沒有例外? – Dreen 2013-03-21 11:38:49
不,沒有例外,沒有線程轉儲,沒有日誌,沒有任何東西:它只是凍結。 – 2013-03-22 10:49:17
如果您執行線程轉儲(VisualVM),您是否看到卡住線程? – 2013-03-22 13:43:02