javafx resize worldwind

javafx - Cómo cambiar el tamaño de WorldWind Panel?



resize (1)

Quiero poner un WorldWindowGLJPanel en un Panel, y quiero que se pueda redimensionar , pero no puedo, incluso cuando llamo setSize método de setSize resize o setSize .

Esto es lo que estoy haciendo :

wwd = new WorldWindowGLJPanel(); wwd.setPreferredSize(new java.awt.Dimension(300, 300)); wwd.setModel(new BasicModel()); swingNode = new SwingNode(); swingNode.setContent(wwd); wwdPane = new Pane(); wwdPane.getChildren().add(swingNode);

Luego uso este wwdPane para mostrar World Wind.

Quiero que mi world wind panel tenga el tamaño del panel que lo contiene, y quiero hacer que este world wind panel redimensionable.

Pensé en dar el tamaño a mi world wind panel de world wind panel de mi pane con un setSize(PaneDimenson) y luego unir el tamaño de mi worldwindpanel con mi panel , pero la función setSize no funciona .

EDIT : encontré una solución alternativa al no usar un panel, pero directamente el swingNode, el cambio de tamaño ahora es automático. Pero si quiere usar un panel, todavía hay un problema, y ​​está obligado a usar un grupo.


El setSize está funcionando, prueba este código:

scene.widthProperty().addListener(new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> o, Number b, Number a ) { Platform.runLater(new Runnable() { public void run() { wwd.setSize((int)(a.intValue()*0.5), wwd.getHeight()); } });

o con Java8

scene.widthProperty().addListener((o,b,a)->Platform.runLater(()-> wwd.setSize((int)(a.intValue()*0.5), wwd.getHeight())));

Pero no pude hacer que el cambio de tamaño funcionara en mi código de muestra, porque SwingNode de alguna manera estropeó el cambio de tamaño, creo que debería probar la solución que se recomienda aquí .