为了账号安全,请及时绑定邮箱和手机立即绑定

MigLayout:将两个 JLabel 放在由 JTextField 分隔的同一行上

MigLayout:将两个 JLabel 放在由 JTextField 分隔的同一行上

隔江千里 2021-09-15 10:24:23
如何在同一行中设置由 JTextField 分隔的两个 JLabel?我正在使用 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" );我得到的输出如下所示。我希望图标与阈值和文本字段位于同一行。我该如何调整?任何帮助/建议表示赞赏。
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

您是否考虑过在放置组件时使用行/列约束和“单元格”参数?我用这种方法取得了很多成功。


    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 快速入门指南,因为它们在解释您可以使用的所有内容方面做得非常好。


旁注:


它没有出现在一行中的原因是因为您告诉 MigLayout 可以让wrap组件适应您提供的空间,包括制作新行以适应。您也可以尝试增加窗口的大小。


大小100:20转换为 100 像素的最小大小,但首选大小为 20 像素,我不知道 MigLayout 将如何处理。我在我的代码中更改了它。



查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 351 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信