2015-05-27 4 views
1

Я использовал интерфейс перетаскивания, чтобы поместить компоненты, где я хочу, чтобы они были, но при изменении размера окна они теряют свое относительное положение. Я приложил скриншот моей иерархии и двух окон, чтобы показать, как компоненты теряют свою позицию.Элементы позиционирования JavaFx-- в SceneBuilder

Hierarchy Fullscreen

+0

Было бы здорово, если бы вы импортировали изображения на свой вопрос, так что нет вероятности получить сломанные ссылки в будущем. – henriqueor

+0

Я не могу найти второе изображение окна, есть только полноэкранный режим. Пожалуйста, разместите здесь свой java-код и fxml, чтобы мы могли вам помочь. Рассмотрите возможность создания MCVE: http://stackoverflow.com/help/mcve – henriqueor

+0

Я изменил учетные записи, и теперь у меня недостаточно репутации для импорта изображений или для размещения более двух ссылок здесь. Вот изображения нормального размера: https://www.dropbox.com/s/1ufuut0zvjvcknf/normal%20size.png?dl=0 Единственный код, который у меня есть на данный момент, - это fxml, сгенерированный SceneBuilder. Я подниму это через минуту. @henriqueor –

ответ

0

Вы должны изучить, как использовать Layout Panes. Перетаскивание компонентов приводит к абсолютному позиционированию, что очень плохо.

+0

Вы уверены? Я думал, что абсолютное позиционирование произойдет, если я использую только панель, которая в моем случае я не сделал. Я использовал (путем перетаскивания) палитры макета, как вы можете видеть в моей иерархии. Но он действует так, как будто я сделал абсолютную позицию. –

+0

Перетаскивание всегда оставляет вас с абсолютным позиционированием. Сначала изучите панели компоновки, чтобы вы знали, как их использовать, затем просматривайте иерархию и найдите абсолютные значения в настройках макета. Вы хотите как можно меньше (желательно ни одного). –

1

Если вы хотите использовать AnchorPane макет ваших компонентов, вы можете установить ограничения Anchor панели, как показано на рисунке ниже:

Anchor Pane Constraints

Таким образом, это не имеет значения, если вы изменить размер экрана, кнопка всегда будет находиться на расстоянии 10 пикселей от правой границы AnchorPane.

Когда вы используете AnchorPane для размещения компонентов на экране, у вас не будет относительного позиционирования, вы должны использовать другие контейнеры для размещения своего приложения. Подробнее о том, как использовать макетные панели здесь: Using Layout Panes

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