代码之家  ›  专栏  ›  技术社区  ›  A M

代号一个带有图标的按钮-根据图标大小设置大小

  •  1
  • A M  · 技术社区  · 7 年前

    我有一个图标按钮,带有一个小的方形图标。

    按钮嵌入在BoxLayout中。

    有没有办法减小按钮的大小,以便自动达到图标的精确大小?

    我的意思是,我知道我可以更改按钮的大小编辑边距和填充,但我想知道是否可以根据嵌入按钮中图标的大小自动更改它。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Shai Almog    7 年前

    Layouts 在代码名中,根据组件的首选大小及其自身逻辑确定大小。 BoxLayout 始终缩放组件以占据相反轴上的可用空间,这意味着方框Y布局上的按钮将占据全部可用宽度。

    因此:

    Button b = ...;
    boxYContainer.add(b);
    

    按钮将占据整个宽度。

    FlowLayout 为组件提供其首选尺寸,该尺寸对确定性组件非常有效,而对其他组件则不太好,例如,这对 TextArea 其中内容可以根据文本回流更改首选大小。

    这样会将按钮放置在中心的首选大小:

    Button b = ...;
    boxYContainer.add(FlowLayout.encloseCenter(b));
    

    注意,这是以下的速记语法:

    Button b = ...;
    Container flowLayoutContainer = new Container(new FlowLayout(Component.CENTER));
    flowLayoutContainer.add(b);
    boxYContainer.add(flowLayoutContainer);