我有一个JLabel,在创建时它将是空白的。稍后,它将被初始化为字符串"Hello“
如果稍后我setText到"Hello“,我的整个布局就会变得一团糟(FWIW,我正在使用GridBagLayout)。
这是我找到的唯一避免这个问题的方法。
JLabel tmp = new JLabel("Hello World");
Dimension d = tmp.getPreferredSize();
JLabel actual = new JLabel();
actual.setPreferredSize(d);没有比这更好的方法了吗?
发布于 2015-05-11 14:44:36
问题的全部内容是什么?为什么尺寸变化这么重要?大小的变化会影响GridBagLayout的网格吗?
也许您需要更好的表单设计,以便标签文本中不断变化的大小不会影响表单上其他组件的布局?也就是说,也许您需要用不同的布局管理器嵌套不同的面板。
例如,您可以使用带有CardLayout的面板,然后将每个标签作为面板的卡片。然后,与其更改文本,不如交换标签。这样,面板将为布局中最大的卡保留空间。
https://stackoverflow.com/questions/30165696
复制相似问题