当标签中的文本太长时,JLabel 将其缩写并在末尾添加 ...。我如何自定义此文本?
我有缩写为长文本的方法,但现在我不知道如何将它传递给 JLabel:
public static String abbreviateMiddle(String str, String middle, int length, int lengthSuffix) {
if (StringUtils.isEmpty(str) || StringUtils.isEmpty(middle)) {
return str;
}
if (length >= str.length() || length < (middle.length() + 2) || lengthSuffix > length
|| str.length() < lengthSuffix || length - middle.length() < lengthSuffix) {
return str;
}
int targetSting = length - middle.length();
int endOffset = str.length() - lengthSuffix;
int startOffset = targetSting - lengthSuffix;
StrBuilder builder = new StrBuilder(length);
builder.append(str.substring(0, startOffset));
builder.append(middle);
builder.append(str.substring(endOffset));
return builder.toString();
}
最佳答案
如图here ,标签的 UI 委托(delegate)根据 layoutCL()
中的要求添加省略号。调整框架大小以查看效果。您可以拦截结果以返回您喜欢的任何String
。
关于java - 如何自定义JLabel缩写文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217798/