我有一个图标按钮,带有一个小方形图标。
该按钮嵌入在BoxLayout中。
有没有办法缩小按钮的大小,以便自动达到图标的确切大小?
我的意思是,我知道我可以更改按钮的大小编辑边距和填充,但是我想问我是否可以根据按钮中嵌入的图标的大小自动更改它。
答案 0 :(得分:1)
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);