Как сделать так, чтобы каждый TextField для BoxLayout.Y_AXIS имел собственную ширину? - PullRequest
0 голосов
/ 22 сентября 2011

Есть TextFields, четыре, содержащиеся в Container, чья компоновка BoxLayout(BoxLayout.Y_AXIS).Я хочу, чтобы каждый из этих TextFields имел свою ширину.Я попробовал setPreferredW, также setColumns, но TextFields имеют одинаковый размер, который занимает всю ширину оставшегося ряда.

Итак, как сделать так, чтобы каждый или несколько TextFields имели свою собственную ширину

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Я нашел решение: я получил класс TextField и в конструкторе установил предпочтительное значение ширины.

PS: я не звонил super();

1 голос
/ 22 сентября 2011

BoxLayout всегда растягивает компоненты в противоположной ОСи, поэтому текстовые поля всегда растягиваются независимо от их предпочтения W (еще одна причина, по которой вы никогда не должны связываться с этим значением, если не знаете, что делаете ...).

Решение простое: вложите текстовые поля в несколько контейнеров FlowLayout / BoxLayoutX и добавьте контейнеры один за другим в макет блока Y. Каждый из контейнеров будет занимать всю ширину контейнера Y AXIS, но текстовые поля внутри не занимать все пространство.

...