2013-03-16 7 views
2

У меня есть панель внутри моего интерфейса. На этой панели я добавляю объекты Shape и перетаскиваю их. I, что сделать мою панель больше, когда одна форма достигает визуальных границ области. Как прототип, Я пытаюсь сделать его больше всякий раз, когда я нажимаю на мышь. Панель является дочерней (внутри) ScrollPane. Вот мой код:Динамическое изменение размера JavaFX 2

paneArea.setOnMouseClicked(new EventHandler<MouseEvent>() { 
     @Override 
     public void handle(MouseEvent mouseEvent) { 
      System.out.println(paneArea.getWidth()+" "+paneArea.getHeight()); 
      paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100);     
      System.out.println(paneArea.getWidth()+" "+paneArea.getHeight()); 
     } 
    }); 

Когда я дважды щелкните я получаю следующий результат:

602.0 574.0 
702.0 674.0 
602.0 574.0 
702.0 674.0 

Таким образом, панель в основном изменяет размер на короткое время и затем возвращается к своему первоначальному size.On в FXML, максимальную высоту и ширина устанавливаются в USE_PREF_SIZE, а также MAX_VALUE. Я также попытался увеличить maxWidth/height до вызова изменения размера, но не имел никакого значения. Любой совет?

ответ

1

Я использовал неправильный метод, а также вариант fxml. Способ сделать это был с помощью метода setPrefSize, а затем установить максимальный размер в USE_PREF в файле fxml.

+0

Моего 2cents Я думаю, вы также должны поставить мин размера как 'USE_PREF' в FXML файл. – zIronManBox

0

Ваш код является неправильным. Вместо того чтобы использовать

paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100); 

Используйте

paneArea.setPrefWidth(paneArea.getWidth() + 100) ; 
paneArea.setPrefHeight(paneArea.getHeight)() + 100) ; 
+0

Спасибо за ваш ответ, хотя эта проблема больше не актуальна, поэтому я не могу это проверить. – Giannis

Смежные вопросы