Я борюсь с MIGLayout
- я, как правило, знаком с его основами, но сегодня столкнулся с проблемой.
Чтобы упростить ситуацию:
Я хочу иметь три строки, такие, чтобы вВ первой и третьей строке находится нефиксированное количество объектов (например, JTextField
компонентов).Ширина первого текстового поля из первой строки должна совпадать с шириной первого текстового поля из третьей строки и т. Д.
Последнее текстовое поле в строке, содержащее большинство из них, должно увеличиваться дляразмер остальной части кадра.
Эти две строки следует различать JSeparator
, который также должен иметь длину кадра.
Я уже видел Как нарисовать разделитель напанель, использующая MigLayout , но, поскольку мне нужно, чтобы поля были выровнены ровно одно под другим, она не работает для меня.
Это мой код:
public class Main extends JFrame {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
new Main();
}
public Main() {
setLayout(new MigLayout(new LC()));
setPreferredSize(new Dimension(800, 300));
CC cc = new CC().growX();
CC wcc = new CC().growX().wrap();
add(new JTextField("Area 1"), cc);
add(new JTextField("Area 2"), cc);
add(new JTextField("Area 3"), wcc);
add(new JSeparator(), new CC().spanX().pushX().growX().wrap());
add(new JTextField("Longer Area 1"), cc);
add(new JTextField("Longer Area 2"), cc);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}
}
Вот как это выглядит:
и вот как я хочу, чтобы это выглядело так:
Как лучше всего решить эту проблему?Количество текстовых полей будет меняться динамически.Заранее спасибо.