我有一个JLabel
,我需要在屏幕上绘制一些应用于Graphics对象的Transforms。
我试图让JLabel
尽可能小,没有省略号,具体取决于文本内容。
我要做的是:
setBounds(0, 0, label.getMinimumSize().width, label.getMinimumSize().height);
有时,这会产生省略号,有时候会产生省略号。它实际上取决于所应用的变换(通常是动画中的任意缩放)。
我是否遗漏了一些我认为应该考虑的“最小尺寸”的东西,我是否会收集一些四舍五入的错误等等?
请指出正确的方向。
答案 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);
和高度类似。