2015-04-29 3 views
13

Я хочу положить WorldWindowGLJPanel в панель, и я хочу, чтобы сделать его resizable, но я не могу, даже когда я звонюили setSize метод.Как изменить размер панели WorldWind?

Вот , что я делаю:

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.

Я хочу, чтобы мой world wind panel имел размер панели, которая содержит его, и я хочу сделать это world wind panel изменяемым по размеру.

Я думал о дать размер, чтобы мой world wind panel моего pane с setSize(PaneDimenson) и затем связывает размер моего worldwindpanel с моей панелью, но setSize функции не работает.

EDIT: Я нашел альтернативное решение, не используя панель, но непосредственно swingNode, теперь размер изменяется автоматически. Но если вы хотите использовать панель, все еще есть проблема, и вы можете использовать группу.

ответ

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 как-то испортить изменение размера, я думаю, вы должны попробовать решение, рекомендованное here.

+0

Проблема возникает из swingNode, но решение в другой теме не работает для меня ... –

+0

Если я использую группу, то решайте другую работу по теме. –

+0

Я рад, что вы это решили, у меня не было другой идеи. Эта функция SwingNode предназначена только для обратной совместимости, и я считаю, что всегда рискованно подключаться к базе данных на основе swing, если вы не пишете эту библиотеку. – gaRos