Компоновка Swing'a BorderLayout.ANY

255
26 ноября 2016, 19:22

Помогите разобраться.Интересует, почему если добавлять панель на фрейм , указывая BorderLayout.ANY , то на этой панели перестают работать Layout'ы или же работают криво? Пример JFrame jf = new JFrame(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setSize(400, 300); jf.setVisible(true); JPanel p = new JPanel(); jf.add(p); // FlowLayout. p.setLayout(new FlowLayout()); p.add(new JButton("start 2")); p.add(new JButton("start 2")); p.add(new JButton("start 3")); p.add(new JButton("start 4")); p.add(new JButton("start 5")); p.add(new JButton("start 6")); p.add(new JButton("Okay")); Нам будут отображены 7 кнопок , но так как они не влезают , то менеджер компоновки FlowLayout их передвинет на следующую строку. В итоге мы увидим все 7 кнопок. Но стоит нам указать в строке добавления панели место её размещения:

jf.add(p,BorderLayout.NORTH);

То при запуске нам будет отображено лишь 5 кнопок.И я не особо понимаю почему , толи они переносятся , но верхняя часть на столько узка , что не дает нам их увидеть , либо я не правильно понимаю использование конструктора. В общем так или иначе ,помогите мне с тем как мне в шапку (Верхнюю часть фрейма) добавить 3 ряда кнопок с текстовым(JTextField) полем , не таблицей(ибо JTextField сожмется, и кнопки разных размеров из за длины текста в нем). Если конкретней , то у меня есть 3 панели , все добавлены через frame.add(jPanel,BorderLayout.ANY).И все было бы хорошо , если бы в шапке нужно было только 4 кнопки и поле для ввода , но мне надо их 16. И при добавлении дальше кнопок они просто не отображаются (если не расстягивать окно).Они не переносятся на новую строку , какой бы менеджер компоновки я не указывал в jPanel.setLayout(). Можно ли как то расширить шапку или по другому указать компоновку , чтобы она заработала ? Неужели для добавления пары кнопок придется мучиться с GridBagLayout? Совсем недавно познакомился со swing'ом...

READ ALSO
Как изменить иконку у jar с чашкой кофе?

Как изменить иконку у jar с чашкой кофе?

Добрый день, пытаюсь сменить у jar файла иконкуДля этого использую данную конструкцию

452
Не вызывается метод onCreate()

Не вызывается метод onCreate()

Хочу хранить состояние некоторых объектов и что бы эти объекты были доступны всюду

262
Чётные числа в массиве

Чётные числа в массиве

Не могу разобраться, как в консоли вывести элементы массива: все чётные числа от 1 до 20Помогите, пожалуйста

311
Stringer Java Obfuscator подключить в Android Studio

Stringer Java Obfuscator подключить в Android Studio

Здравствуйте, взял триал такого продукта как "Stringer Java Obfuscator", но теперь битый час пытаюсь использовать его плагин stringer-gradle-pluginjar чтобы создавать...

363