Рассматривали ли вы использование ограничений строки / столбца и использование аргументов "ячейка" при размещении Компонентов?У меня был большой успех с этим методом.
JPanel helper = new JPanel(
new MigLayout(
"",
"5[grow,fill]10[grow,fill,20:100]10[grow,fill,20:100]5",
"5[fill,grow]5"));
helper.add( new JLabel( "Threshold:" ), "cell 0 0" );
threshold = new JTextField(); // Assuming this was declared earlier
Icon thresholdIcon = UIManager.getIcon( "OptionPane.questionIcon" );
JLabel thresholdIconLabel = new JLabel( thresholdIcon );
thresholdIconLabel.setToolTipText( "Threshold for template matching" );
helper.add( threshold, "cell 1 0" );
helper.add( thresholdIconLabel, "cell 2 0" );
Обратите внимание на краткое руководство по MigLayout и MigLayout , так как онидействительно хорошо объясните все, что есть в вашем распоряжении.
Sidenotes:
Причина, по которой он не отображается в одной строке, заключается в том, что вы говорите MigLayout, что все в порядкеwrap
Компоненты для размещения в пространстве, которое вы им предоставляете, включая создание новых линий для размещения.Вы также можете попробовать увеличить размер окна.
Размер 100:20
соответствует минимальному размеру 100 пикселей, но предпочтительному размеру 20 пикселей, и я не знаю, как будет обрабатываться MigLayoutтот.Я изменил его в своем коде.
(Отказ от ответственности: код не проверен и может быть немного грубым)