как создать этот макет в Java-свинг - PullRequest
1 голос
/ 13 июля 2011

Мне интересно, может ли кто-нибудь помочь мне с генерацией этого макета:

enter image description here

Я потратил много времени.

Что я хочуis:

1) Размеры jButton1, jLabel1 и jLabel2 такие же, как их исходные размеры при изменении размера.

2) Размеры jTextField1 и jTextField2 будут автоматически расширяться при изменении размера, но общая ширина jTextField1 + jLabel1 будет такой же, как jTextField2 + jLabel2.

3) Высоты JTree1 и JTree2будет автоматически расширяться при изменении размера, и их ширина будет одинаковой.Их нужно поместить в JScrollPane, чтобы при раскрытии деревьев появлялись полосы прокрутки.

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Смотрите здесь: http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html

Я бы лично обернул все это в GridBagLayout за гибкость, которую он предлагает. Кроме того, мне часто легче помещать вещи в GridLayouts или BoxLayouts , а затем помещать их в GridBagLayout , чтобы мне не приходилось иметь дело с конкретными веса для каждого объекта.

2 голосов
/ 13 июля 2011

Это может потребовать некоторых экспериментов. Я бы начал с BorderLayout с «Top» и «Center».

. «Top» содержит только кнопку (вам может понадобиться найти контейнер, который делает то, что он делаетвы хотите - вы должны найти что-то, что отжимает его до нужного размера).Центр содержит все остальное.

В центре вы размещаете что-то, что делится равномерно, я думаю, что горизонтальная схема потока сделает это.Можно также использовать разделитель для перетаскивания размеров, если хотите.

На каждой из двух сторон макета потока (или в зависимости от того, что работает).Вы добавляете BorderLayout с меткой и текстом в верхней части, а "центр" оставляется для дерева.

Для поля метки и текста вы можете использовать ДРУГОЙ BorderLayout и указывать запад для кнопкии центр для поля.

Затем ваши компоненты должны изменить размер так, как вы хотите.

В итоге, возможно, что-то вроде:

BorderLayout
    top:
        BorderLayout
            bottom:
                button (May need to be in another container to get the size right)

    center:
        Split pane or flow layout
            left side (Same as right side):
                BorderLayout 
                    top:
                        BorderLayout
                            west:
                                label
                            center:
                                textbox
                    center:
                        JTree
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...