Java - Объясните вес Gridbag для отображения отношений пикселей/формулы/преобразования

StackOverflow https://stackoverflow.com/questions/6810599

Вопрос

Я играл с 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.

По -видимому, проблема в том, что в ячейки добавляется дополнительное пространство.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top