在一个使用GridLayout布局的JFrame中,动态添加多个JLabel组件,每个JLabel组件的文本内容长度不固定。若要保证在JFrame大小改变时,所有的JLabel组件都能均匀分布且保持在单元格内完整显示,并且JLabel之间的间距能够根据JFrame大小进行调整,以下哪种处理方式最为合适且高效?
答案解析
选项A的错误在于,GridLayout本身会根据容器大小自动调整单元格大小,而setPreferredSize的固定尺寸会使组件无法完全适应布局的变化,导致显示不完整或间距不均匀。选项B的错误在于,GridLayout并不直接支持gridx和gridy参数,它们是GridBagLayout的概念,使用错误。选项D的错误在于,BorderLayout只允许在五个区域添加一个组件,不适合多个JLabel组件的布局需求。选项C利用GridBagLayout布局及其GridBagConstraints约束,通过weightx和weighty属性,可以实现组件在容器大小变化时的均匀分布和大小调整,并且可以精确控制组件间的间距,是该场景下最合适的选择。所以C为最优解。
正确答案:C