Краткий ответ - использование LayoutManager.Но LayoutManager работает очень по-разному, в зависимости от того, что вам нужно.Поэтому вам нужно знать, как вы хотите, чтобы ваши динамические флажки располагались.Где в вашем пользовательском интерфейсе будет расширяемая часть, чтобы поглотить потенциально N количество флажков.Не зная, как вы хотите визуально расположить компоненты, я не могу посоветовать вам, какой менеджер компоновки лучше всего подходит для вашей ситуации.
Общие рекомендации по LayoutManagers - это TableLayout очень хорошие динамические компоненты.Это очень прямо, и все еще очень сильно.Лучше вести себя и гораздо меньше кода требуется, чем, скажем, GridBagLayout, и проще для понимания, чем, скажем, SpringLayout или MigLayout.Получите это, узнайте, как использовать это, тогда действительно спросите себя.
Действительно ли мне нужно динамически создавать свой пользовательский интерфейс для флажков или я могу сделать это с помощью набора простых панелей в CardLayout и переключаться между ними на основе некоторого ввода (это намного проще, чем динамическое расположение элементов управленияво время выполнения).
http://java.net/projects/tablelayout
JPanel panel = new JPanel( new TableLayout(...) ); // sets the LayoutManager used by JPanel
panel.add( new JCheckBox(), "1 2" ); // add to row 1 column 2
Вы получите изображение.