我创建了一个包含 JLabel 的 JDialog。由于根据用户输入而改变的文本长度可能包含大量字符,因此需要根据JDialog的长度大小动态地改变JDialog的长度。我已经尝试过 pack() 方法,但事实并非如此。谁能给我一些建议吗?提前致谢!
最佳答案
getPreferredSize
forJLabel
- 基本上你必须从JLabel
获取textLength
(以像素为单位),那里有 3 种正确的方法,但我喜欢:SwingUtilities.computeStringWidth(FontMetrics fm, String str)
现在您可以正确为
JLabel
setPreferredSize
(默认情况下,是否需要将+5 - +10添加到Integer
返回SwingUtilities.computeStringWidth
)- 在顶级容器(
JDialog
)上调用pack();
。
关于java - 动态改变JDialog的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845382/