13

我想把 aWorldWindowGLJPanel放到一个窗格中,我想让它 resizable,但我不能,即使我调用resizesetSize方法。

就是我正在做的事情:

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); 

然后我用它wwdPane来显示世界风。

我希望我world wind panel拥有包含它的窗格的大小,并且我想让它world wind panel调整大小。

我想过用 a给 my world wind panelof my的大小,然后将我的 worldwindpanel 的大小与我的窗格绑定,但该功能不起作用panesetSize(PaneDimenson)setSize

编辑:我找到了一个替代解决方案,不使用窗格,而是直接使用 swingNode,调整大小现在是自动的。但是如果你想使用一个窗格仍然有问题,你不得不使用一个组。

4

1 回答 1

0

setSize 工作,试试这个代码:

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());
         }
      });

或使用 Java8

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

但我无法在我的示例代码中调整大小,因为 SwingNode 以某种方式弄乱了调整大小,我认为您应该尝试这里建议的解决方案。

于 2015-05-08T14:40:33.180 回答