如何自定义JLabel缩写文本

时间:2013-04-25 14:41:32

标签: java jlabel

当标签中的文字太长时,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();
}

1 个答案:

答案 0 :(得分:1)

如图here所示,标签的UI委托根据layoutCL()中的要求添加省略号。重新调整框架以获得效果。您可以拦截结果以返回您喜欢的String