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í .