Как правильно выровнять элемент flex?

FlowLayout просто помещает компонент один рядом с другим в порядке слева направо. Когда ширина достигает одного из контейнеров, которые имеют этот макет, он просто переносится на другую строку.

Если вы хотите разместить их в макете в виде сетки (как вам кажется, вы хотите), вы можете использовать GridLayout, который позволяет указать количество столбцов и строк:

component.setLayout(new GridLayout(2,2))

Единственным недостатком GridLayout является то, что каждая ячейка сетки будет иметь тот же размер (что обычно хорошо, если у вас только есть JButtons или JLabels, но когда вы смешиваете вещи, это будет визуально плохо).

Если вам действительно нужно больше энергии, переходите к GridBagLayout, очень настраиваемому, но с более крутым

Вероятно, проблема вашего размера связана с тем, что вы используете setSize, но в Swing эти вещи имеют странное поведение, вы должны попробовать, установив setPreferredSize(200,200) вместо setSize. Но не спрашивайте меня, почему!

ПРИМЕЧАНИЕ: вы должны ВСЕГДА обращаться к области содержимого фрейма, а не к кадру. Когда вы устанавливаете макет, вы должны делать getContentPane().setLayout(..), когда вы добавляете элементы, которые вы должны делать getContentPane().add(..) и т. Д.

Исправлены: теперь каждый JFrame add, remove, setLayout автоматически перейдите на панель содержимого.

545
задан Melchia 6 March 2018 в 21:52
поделиться

1 ответ

Это решение должно работать

.main{
    position: relative;
    display: -ms-flexbox;
    display: flex;
    vertical-align: middle;
}

.main .c{
margin-left: auto;
order: 2;
}
<div class="main">
    <div class="a"><a href="#">Home</a></div>
    <!--<div class="b"><a href="#">Some title centered</a></div>-->
    <div class="c"><a href="#">Contact</a></div>
</div>
1
ответ дан Monir 4 November 2019 в 07:44
поделиться
  • 1
    @seanlinmt: It' s не Ваша единственная проблема, но это - очень разумный совет. Никогда действительно не соединяют манипуляции каналом, поскольку строки - всегда используют System.IO.Path функции помощника. Иначе, всегда будет то, что один пограничный случай, который кусает Вас. – Daniel Pryden 22 September 2009 в 05:44