gpt4 book ai didi

java - FlowLayout 的问题

转载 作者:行者123 更新时间:2023-12-04 06:56:09 27 4
gpt4 key购买 nike

public class MyFrame extends JFrame
{
public MyFrame(String title)
{

setSize(200, 200);
setTitle(Integer.toString(super.getSize().width));
setLayout(new FlowLayout());
for (int i = 0; i < 5; ++i)
{
JButton b = new JButton();
b.setSize(90,50);
b.setText(Integer.toString(b.getSize().width));
this.add(b);![alt text][1]
}
this.setVisible(true);
}
}
为什么如果按钮宽度为 90 我得到的窗口是三个按钮在一行而不是两个?

最佳答案

FlowLayout将布局 Component s 如果需要,从左到右(或从右到左)包装它们。如果您希望明确设置每个 JButton 的大小你应该使用 setPreferredSize 而不是 setSize因为布局管理器在执行布局时通常会使用最小、首选和最大尺寸。

尺寸属性相当困惑 - 有一篇有趣的文章 here .特别要注意:

Are the size properties always honored?

Some layout managers, such as GridLayout, completely ignore the size properties.

FlowLayout, attempts to honor both dimensions of preferredSize, and possibly has no need to honor either minimumSize or maximumSize.

关于java - FlowLayout 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com