I am trying to have it display in a GridPane and it will not display unless it is the actual scene. I have 3 cases, 2 of them don't work and one does work but the example that works can't be put inside another hbox or vbox or else it stops working.
Code: Select all
//This Doesn't work
ChartViewer chartViewer = new ChartViewer(chart);
GridPane.setConstraints(chartViewer, 0, 1);
gridPane.getChildren().add(chartViewer);
Scene primaryScene = new Scene(gridPane);
// This also doesn't work
VBox vbox = new VBox();
HBox parent = new HBox();
Node container = useWorkaround(chartViewer);
HBox.setHgrow(container, Priority.ALWAYS);
parent.getChildren().add(container);
vbox.getChildren().add(parent);
Scene primaryScene = new Scene(vbox);
// This works
HBox parent = new HBox();
Node container = useWorkaround(chartViewer);
HBox.setHgrow(container, Priority.ALWAYS);
parent.getChildren().add(container);
Scene primaryScene = new Scene(parent);
// Method found in #6 used to test
private Node useWorkaround(ChartViewer viewer) {
if (true) {
return new StackPane(viewer);
}
return viewer;
}
// This does not work
ChartCanvas chartCanvas = new ChartCanvas(chart);
StackPane stackPane = new StackPane();
stackPane.getChildren().add(chartCanvas);
Scene primaryScene = new Scene(stackPane);