Предположим, у меня есть JPanel
с GridBagLayout
так:GridBagLayout и весов Перекрытие Компоненты
-----------------------------------------------
| | | | |
| |Left JLabel 1 | Right JLabel 1| |
| | | | |
|-glue-|Left JLabel 2 | Right JLabel 2|-glue-|
| | | | |
| | Bottom JLabel | |
| | | | |
| vertical glue |
-----------------------------------------------
Левый/правый метки каждого пролета 1 строк и 1 столбцов, в то время как нижняя этикетка охватывает 1 строку и 2 столбца. Горизонтальные клеи с обеих сторон охватывают 3 строки и по 1 колонке. Вертикальный клей на дне охватывает 1 ряд и 4 колонны.
Каждая из этикеток имеет weighty
от 1.0
. Кроме того, клей с обеих сторон также имеет weighty
от 1.0
. Вертикальный клей имеет weighty
1.5
. В настоящее время, когда я изменяю размер панели в направлении y
, вертикальный клей получает приблизительно 3/5 свободного пространства, а вся верхняя часть получает приблизительно 2/5 свободного пространства.
Вопрос: как работает вес, когда клей накладывается (если смотреть с y
- перспектива) с кнопками? Без клея общий вес кнопок был бы 3.0
: это совершенно другой вариант изменения размера! Как рассчитывается вес (наивысший, средний, «вид с точки зрения размера»,?) И используется?
Благодарим вас за ответ на мой вопрос, но «кто точно знает, что происходит»: кто действительно это делает? Существуют ли на Java разработчики Java-языков? :) Кроме того, пример, который я дал в моем вопросе, довольно прост, но что, если клей и кнопки частично перекрываются? Что делать, если несколько столбцов перекрываются в разной степени? – shardulc
'но что, если клей и кнопки частично перекрываются?' - то есть было бы еще сложнее. Я всегда предлагаю использовать вложенные панели с соответствующим макетом компоновки вместо того, чтобы пытаться создать макет с одним менеджером макета. – camickr