【发布时间】:2012-07-10 09:39:19
【问题描述】:
我有一个使用 FlowLayout 的 JPanel。我在 JPanel 中添加了一些 JLabel,使用 setPreferedSize() 调整它们的大小并将它们保存在一个列表 label_list 中。一切正常。然后我想改变它们的大小:
for(JLabel c:label_list){
c.setPreferedSize(new Dimension(10,10));
}
而且它不起作用。
c.setBackground(Color.red)
类似的东西也有效。为什么我不能在这里使用 setPreferedSize?
c.setBounds(1,1,10,10) 和 c.setSize(10,10) 可以,但是在我更新 UI(调整面板大小)后,每个大小都会恢复正常。
【问题讨论】:
-
您是否要求容器重新布局其内容?尝试使无效、重新验证和重绘(或它们的组合)
-
永远不要使用 setXXSize。一些原因:stackoverflow.com/questions/7229226/…。而是选择支持您要求的 LayoutManager。
标签: java swing jlabel flowlayout