Java 为什么setPreferedSize()方法不适用于JPanel?
我已经创建了n个JPanel,并且在每个JPanel中添加了3个组件。我将这些JPanel作为行添加到一个新的JPanel中。n JPanel的布局为FlowLayout,主面板的布局为BorderLayout。setPreferedSize()方法对于我在n JPanels中添加的组件运行良好,但对于n JPanels不起作用。 我正在尝试npanels[i].setPreferedSize(新维度(300,25)) 我希望JPanel的高度等于添加到其中的组件的高度(25)。 JPanel的高度应该是某个最小值,这有什么限制吗?Java 为什么setPreferedSize()方法不适用于JPanel?,java,swing,Java,Swing,我已经创建了n个JPanel,并且在每个JPanel中添加了3个组件。我将这些JPanel作为行添加到一个新的JPanel中。n JPanel的布局为FlowLayout,主面板的布局为BorderLayout。setPreferedSize()方法对于我在n JPanels中添加的组件运行良好,但对于n JPanels不起作用。 我正在尝试npanels[i].setPreferedSize(新维度(300,25)) 我希望JPanel的高度等于添加到其中的组件的高度(25)。 JPanel的
请帮助我,我尝试了很多东西,但都不起作用….一些版面管理员往往会忽略大小设置 阅读某个地方,BorderLayout可能会忽略
北部
和南部
组件的宽度
,
高度
对于东部
和西部
,
对于中心
,高度和宽度都被忽略
会是这样吗
另外,你能提供一个屏幕截图或图表来解释发生了什么吗
setPreferedSize()方法是
部件工作正常
通常不需要为组件设置首选尺寸。Swing将自动计算首选大小
n JPanel的布局是FlowLayout。。。
我在n JPanels中添加了它,但是
不适用于n JPanels
同样,无需设置每个面板的首选尺寸。尺寸将根据所有组件的首选尺寸自动计算
主面板是边界布局
这没有意义,因为无法将“n”面板添加到BorderLayout。只能将一个构件添加到北部、中部和南部,这样最多可以有3个不同的垂直显示面板。在这种情况下,如果使用frame.pack(),则每个面板将以其首选大小显示。另一方面,如果使用frame.setSize(300400),则中间面板的高度将被拉伸
因为看起来您希望所有面板的大小相同,所以您可能应该使用GridLayout,否则您可以尝试BoxLayout。阅读Swing教程。它解释了有关使用布局管理器的所有内容
如果您需要更多帮助,请发布您的 添加屏幕截图给我5分钟,但我在这里找不到任何添加图像的选项。。。你能帮我吗?“图像”图标看起来像一张图片;在左边第六个;另见