我在SWT复合材料中嵌入了JavaFX ScrollPane,并且复合材料填充在SWT表单的旁边。如何使JavaFX ScrollPane始终填充SWT组合,甚至调整SWT表单的大小。
以下是我如何使用FXCanvas保存JavaFX内容的示例:
public Control createContents(Composite parent) {
final Composite composite = (Composite) super.createContents(parent);
composite.setLayout(new FillLayout());
// Create a JavaFX canvas
final FXCanvas fxCanvas = new FXCanvas(composite, SWT.NONE);
/* Create a JavaFX Group node */
Group group = new Group();
start(group);
fxCanvas.setScene(scene);
return composite;
}
public void start(final Group stage) {
Parent zoomPane = createZoomPane(group);
stage.getChildren().add(zoomPane);
}
private Parent createZoomPane(final Group group) {
final double SCALE_DELTA = 1.1;
final StackPane zoomPane = new StackPane();
zoomPane.getChildren().add(group);
scroller = new ScrollPane();
final Group scrollContent = new Group(zoomPane);
scroller.setContent(scrollContent);
return scroller;
}
答案 0 :(得分:0)
在我的实验之后,我自己找到了答案,这实际上是JavaFx的常见问题,与SWT无关。
原因是我创建了一个Group作为根并将其添加到Scene中,我应该创建一个VBox作为根并将其添加到场景中。