【问题标题】:How to resize WorldWind Panel?如何调整 WorldWind 面板的大小?
【发布时间】:2015-07-08 22:41:00
【问题描述】:

我想将WorldWindowGLJPanel 放入窗格中,并且我想使其可调整大小,但我不能,即使我调用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 可调整大小。

我想过用setSize(PaneDimenson) 将我的pane 的大小赋予我的world wind panel,然后将我的worldwindpanel 的大小与我的窗格绑定,但是setSize 函数不起作用。

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

【问题讨论】:

    标签: javafx resize worldwind


    【解决方案1】:

    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 不知何故弄乱了调整大小,我认为您应该尝试here 建议的解决方案。

    【讨论】:

    • 问题来自swingNode,但是其他主题的解决方案对我不起作用...
    • 如果我使用一组其他主题工作的解决方案。
    • 很高兴你解决了这个问题,我没有任何其他想法。这个 SwingNode 功能只是为了向后兼容,我相信如果你没有编写那个库,那么连接一个基于 swing 的库总是有风险的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2023-03-29
    • 2013-08-25
    • 2012-05-27
    • 2011-08-14
    相关资源
    最近更新 更多