MigLayout: поместите два JLabel на одной строке, разделенных JTextField - PullRequest
0 голосов
/ 11 сентября 2018

Как мне установить две JLabel, разделенные JTextField в одной строке? Я использую MigLayout. У меня есть следующий код

		JPanel helper = new JPanel( new MigLayout() );
		helper.add( new JLabel( "Threshold:" ), "" );
		threshold = new JTextField();
		Icon thresholdIcon = UIManager.getIcon( "OptionPane.questionIcon" );
		JLabel thresholdIconLabel = new JLabel( thresholdIcon );
		thresholdIconLabel.setToolTipText( "Threshold for template matching" );
		helper.add( threshold, "wrap, width 100:20" );
		helper.add( thresholdIconLabel, "wrap, width 100:20" );

Вывод, который я получаю, выглядит следующим образом.

enter image description here

Я хочу значок в той же строке, что и Порог и текстовое поле. Как мне это настроить? Любая помощь / предложения приветствуются.

1 Ответ

0 голосов
/ 11 сентября 2018

Рассматривали ли вы использование ограничений строки / столбца и использование аргументов "ячейка" при размещении Компонентов?У меня был большой успех с этим методом.

    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:

  1. Причина, по которой он не отображается в одной строке, заключается в том, что вы говорите MigLayout, что все в порядкеwrap Компоненты для размещения в пространстве, которое вы им предоставляете, включая создание новых линий для размещения.Вы также можете попробовать увеличить размер окна.

  2. Размер 100:20 соответствует минимальному размеру 100 пикселей, но предпочтительному размеру 20 пикселей, и я не знаю, как будет обрабатываться MigLayoutтот.Я изменил его в своем коде.

(Отказ от ответственности: код не проверен и может быть немного грубым)

...