我有一个 JLabel
,我需要将其绘制到屏幕外,并对 Graphics 对象应用一些变换。
我正在尝试使 JLabel
尽可能小,并且根据其文本内容不使用省略号。
我想做的是:
setBounds(0, 0, label.getMinimumSize().width, label.getMinimumSize().height);
有时,这会产生省略号,有时会产生省略号。它实际上取决于所应用的变换(通常是动画中的任意缩放)。
我是否遗漏了一些我应该考虑的“最小尺寸”的明显内容,我是否遇到了一些向下舍入的舍入错误等?
请为我指明正确的方向。
最佳答案
label.getMinimumSize() 由 UI 委托(delegate)计算,更多地与布局及其镶边而不是其内容有关。也许您可以尝试根据文本计算尺寸应该是多少?
类似...
JLabel label = new JLabel("xx");
int minWidth = ((int) (label.getFontMetrics(label.getFont()).getStringBounds(label.getText(),label.getGraphics()).getWidth()) + label.getInsets().left + label.getInsets().right);
高度也类似。
关于java - JLabel 可以有多小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171686/