Java - Объясните вес Gridbag для отображения отношений пикселей/формулы/преобразования
-
25-10-2019 - |
Вопрос
Я играл с GridBagLayout
И я не могу понять, сколько пикселей я получу с конкретным weight
в ограничениях.
Например, скажем, у меня 1000 пикселей contentPane
с тремя JPanel
в нем, с весами (скажем, weighty
) 0,1, 0,1, 0,8.
Моя первая гипотеза заключалась в том, что панель 1 и 2 будут по 100 пикселей каждая, а панель 3 будет 800. Оказывается, это не так.
Как я могу получить точное количество пикселей, чтобы ожидать в отношении взвешивания?
Этот вопрос спрашивает то же самое, но ответы, хотя и полезны, не отвечайте на вопрос. :- /
Решение
Неважно, я думаю, что нашел ответ здесь:
When more than one column has a non-zero weight, the excess space is
distributed among the non-zero weight columns using the weight values.
In particular, if the excess space is P pixels, and the column weights
for column^i is weight^i, then column^i gets exactly
(weight^i * P) / (sum-of-all-column-weights). For example, if column 1
has weight 1 and column 2 has weight 2 and the excess space is 90 pixels,
column 1 will get 30 extra pixels and column 2 will get 60 extra pixels.
Rows with a non-zero weight behave in similar fashion.
По -видимому, проблема в том, что в ячейки добавляется дополнительное пространство.
Не связан с StackOverflow