JLabel有多小?

时间:2009-07-23 13:22:54

标签: java swing

我有一个JLabel,我需要在屏幕上绘制一些应用于Graphics对象的Transforms。

我试图让JLabel尽可能小,没有省略号,具体取决于文本内容。

我要做的是:

setBounds(0, 0, label.getMinimumSize().width, label.getMinimumSize().height);

有时,这会产生省略号,有时候会产生省略号。它实际上取决于所应用的变换(通常是动画中的任意缩放)。

我是否遗漏了一些我认为应该考虑的“最小尺寸”的东西,我是否会收集一些四舍五入的错误等等?

请指出正确的方向。

1 个答案:

答案 0 :(得分:3)

label.getMinimumSize()由UI委托计算,更多地与布局及其chrome而不是其内容有关。也许你可以根据文本尝试计算大小应该是什么?

像...一样的东西。

JLabel label = new JLabel("xx");
int minWidth = ((int) (label.getFontMetrics(label.getFont()).getStringBounds(label.getText(),label.getGraphics()).getWidth()) + label.getInsets().left + label.getInsets().right);

和高度类似。