2009-09-30 2 views
6

В .net есть элемент управления, называемый привязкой, который используется для динамического изменения элементов управления с помощью формы. Когда элемент управления привязан к форме и форма изменяется, управление поддерживает расстояние между элементами управления и положениями привязки.Управление анкеровкой и стыковкой в ​​java Swing

Мой вопрос в том, что в java есть элементы управления, которые выполняют те же функции, что и привязка к .net.
Что касается примера, я выбрал текстовое поле и поместил его на панель и правильно изменил его размер. Теперь, когда я изменяю размер окна (JFrame) или увеличиваю окно, текстовое поле не будет поддерживать такое же расстояние, какое было ранее. Я использую netbeans, и я havent нашел какие-либо свойства в менеджере pallete, который отвечает на мой вопрос. Пожалуйста, объясните мне пример или некоторые ссылки.

ответ

4

Java Swing использует макет менеджер управлять размером и постионом визуальных компонентов. Это официальный Java учебник о том, как использовать этот макет менеджеров:

http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

И есть краткое описание наиболее распространенных менеджеров компоновки

FlowLayout (по умолчанию): он избавляется компоненты, оставшиеся вправо и вниз.

BorderLayout: он делит контейнер в СЕВЕРНОМ, ЮЖНОМ, ЗАПАДНОМ, ЦЕНТРЕ ЦЕНТРА EAST. Только один компонент по положению. Компоненты на границе расширяются, а центральная составляющая использует пространство, доступное

GridLayout: вы инициализируете менеджера, указав, сколько строк и столбцов будет иметь сетка. Каждая ячейка имеет такой же размер, и вы начинаете добавлять компонент в верхнюю левую ячейку.

GridBagLayout: MOST мелкозернистый менеджер макета, вы можете сделать что-нибудь с этим, но немного сложнее, см. Документацию по java для него.

NullLayout (когда вы уменьшаете макет макета контейнера): нет менеджера макета, компоненты используют свойства местоположения и размера для отображения на компонентах.

И, конечно, контейнеры внутри других контейнеров могут использовать другой менеджер компоновки, чем их родитель. Сочетание менеджеров макетов - сложное искусство, чтобы учиться.

1

Netbeans имеет встроенную поддержку для проектирования графических интерфейсов с использованием GUI-матрицы Matisse. Это самое близкое к тому, что вы достигнете перетаскивания формы &, которая доступна в таких средах, как VB.

Есть флэш-демо here.

(Лично я не большой поклонника этого подхода, хотя, как он автоматически создает много кода, который быстро становится неосновательным, особенно, если не все в вашей команде разработчиков с использованием Netbeans.)

0

Если вы имеете получил только один элемент управления, а затем использовал java.awt.BorderLayout и добавив свой контроль с BorderLayout.CENTER - ваш лучший выбор.

Если у вас несколько элементов управления, вам необходимо использовать java.awt.GridBagLayout.

Вам необходимо установить следующее:

gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; 
gridBagConstraints.fill = GridBagConstraints.BOTH; 
gridBagConstraints.weightx = 1; 
gridBagConstraints.weighty = 1; 

при добавлении элемента управления, который вы хотите повторно размер.

Там в учебнике об этом здесь:

http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html

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